1. 程式人生 > >一天一命令-ls

一天一命令-ls

命令 linux ls

一天一命令-ls


系統軟硬件環境平臺:

VMware Workstation Pro 12.5.5 build-5234757

CentOS Linux release 7.3.1611

軟件版本:ls (GNU coreutils) 8.22

測試時間:2017年5月26日


ls - list directory contents,顯示目錄中的文件列表

一、ls基本信息

#ls --version
ls (GNU coreutils) 8.22
#type -a ls
ls is aliased to ‘ls -p --color=auto‘
ls is /usr/bin/ls
#alias | grep ls
alias cls=‘clear‘
alias ls=‘ls -p --color=auto‘
alias lsl=‘ls -l --color=auto‘
alias l.=‘ls -dp .* --color=auto‘
alias l.l=‘ls -dl .* --color=auto‘
alias la=‘ls -ap --color=auto‘
alias ll=‘ls -al --color=auto‘
#which -a ls
alias ls=‘ls -p --color=auto‘
        /usr/bin/ls
#whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
#whatis ls
ls (1)               - list directory contents
ls (1p)              - list directory contents
#/usr/bin/ls  輸入原始路徑,執行原始ls命令,無顏色
#\ls  轉義,功能同上

二、ls命令格式和選項

ls [OPTION]... [FILE]...
-a  顯示隱藏文件
-A  顯示隱藏文件,但不包含./和../
-d  顯示目錄本身屬性而非目錄下的內容
-g  只顯示group
-h  顯示大小格式為K,M,G
-i  顯示inode值
-I  忽略一個指定文件或目錄,註意目錄後面不要加/,文件名和目錄名必須完全匹配,不能使用通配符
-l  以長格式顯示額外信息
-m  以逗號(,)為分隔符顯示
-n  以數字顯示uid和gid
-o  只顯示owner
-p  在目錄後顯示斜杠/
-Q  將列出的每個文件都用("")來引用顯示
-r  反轉顯示(默認排序為按文件名從0-9,a-z)
-R  遞歸顯示
-S  按文件大小排序,默認從大到小
-t  按mtime排序,從新到舊
-u  按atime從新到舊排序,配合-t選項顯示
-U  按目錄存放順序顯示
-x  文件以行顯示,默認為列顯示,主要是排序不同
-X  按文件後綴排序
-1  文件顯示為1列


三、操作對象

後邊可以跟單個或多個文件或目錄,也可以兩者混合


四、補充:

4.1文件通配符

* 匹配零個或多個字符

? 匹配任何單個字符

~ 當前用戶家目錄

~usera 用戶usera家目錄

~+ 當前工作目錄

~- 前一個工作目錄

[0-9]匹配數字範圍

[a-z]字母,非小寫

[A-Z]字母,非大寫

[wang]匹配列表中的任何一個字符

[^wang]匹配列表中的所有字符以外的字符


4.2預定義的字符類 man 7 glob查看

[:digit:] 任意數字相當於0-9

[:lower:] 任意小寫字母

[:upper:] 任意大寫字母

[:alpha:] 任意大小寫字母

[:alnum:] 任意數字或字母

[:blank:] 水平空白字符

[:space:] 水平或垂直空白字符

[:punct:] 標點符號

[:print:] 可打印字符

[:cntrl:] 控制(非打印)字符

[:graph:] 圖形字符

[:xdigit:] 十六進制字符


五、案例:

#ls --version
ls (GNU coreutils) 8.22
Copyright (C) 2013 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard M. Stallman and David MacKenzie.

#ll /etc/chrony.keys
-rw-r-----. 1 root chrony 9 Nov 15  2016 /etc/chrony.keys
#ls -g /etc/chrony.keys
-rw-r-----. 1 chrony 9 Nov 15  2016 /etc/chrony.keys
#ls -o /etc/chrony.keys
-rw-r-----. 1 root 9 Nov 15  2016 /etc/chrony.keys

#touch a,b,c
#ls
2017-04-26.log  aaaaa  abc.tar.gz       a.py   b.txt  history.log  passwd
a/              abc    a.html           a.txt  f5     info.log     sum.sh
a.              a,b,c  anaconda-ks.cfg  a.zip  f漢    pass
#ls -m
2017-04-26.log, a/, a., aaaaa, abc, a,b,c, abc.tar.gz, a.html, anaconda-ks.cfg, a.py, a.txt,
a.zip, b.txt, f5, f漢, history.log, info.log, pass, passwd, sum.sh

#ls -Q
"2017-04-26.log"  "aaaaa"  "abc.tar.gz"       "a.py"   "b.txt"  "history.log"  "passwd"
"a"/              "abc"    "a.html"           "a.txt"  "f5"     "info.log"     "sum.sh"
"a."              "a,b,c"  "anaconda-ks.cfg"  "a.zip"  "f漢"    "pass"

#ls -n
total 68
-rw-r--r--. 1    0 0     0 May 26 17:52 1
-rw-r--r--. 1    0 0     0 May 26 18:06 1.a
-rw-r--r--. 1    0 0     0 May 26 17:52 2
-rw-r--r--. 1    0 0     0 Apr 26 17:29 2017-04-26.log
-rw-r--r--. 1    0 0     0 May 26 17:52 88
-rw-r--r--. 1    0 0     0 May 26 18:06 9.z
drwxr-xr-x. 3    0 0    15 Apr 27 18:26 a/
-rw-r--r--. 1    0 0     0 May 26 16:46 a.
lrwxrwxrwx. 1    0 0     5 May 26 17:09 aaaaa -> a.txt
-rwxr-xr-x. 1 1000 0     0 May 26 19:05 abc

#ls -R
.:
2017-04-26.log  aaaaa  abc.tar.gz       a.py   b.txt  history.log  passwd
a/              abc    a.html           a.txt  f5     info.log     sum.sh
a.              a,b,c  anaconda-ks.cfg  a.zip  f漢    pass
./a:
b/
./a/b:
c/
./a/b/c:
f2  f22  f3

#ll -S
total 76
-rw-r--r--.  1 root  root 20819 May 17 00:03 info.log
-rw-------.  1 root  root 11449 Apr 26 17:48 history.log
drwxr-xr-x.  7 root  root  4096 May 26 19:18 ./
dr-xr-x---. 21 root  root  4096 May 26 11:06 ../
-rw-r--r--.  1 root  root  2235 Feb 20 09:04 passwd
-rw-------.  1 root  root  1940 Feb 20 08:37 anaconda-ks.cfg
-rwxr-xr-x.  1 root  root   167 May 26 11:06 sum.sh
-rwxr-xr-x.  1 root  root   142 Apr 26 16:22 a.py
drwxr-xr-x.  3 root  root    15 Apr 27 18:26 a/
-rw-r--r--.  2 root  root     7 May 26 16:46 a.txt
-rw-r--r--.  2 root  root     7 May 26 16:46 b.txt
drwxr-xr-x.  2 root  root     6 May 26 19:18 .aabb/
lrwxrwxrwx.  1 root  root     5 May 26 17:09 aaaaa -> a.txt
-rw-r--r--.  1 root  root     0 May 26 17:52 2

#ls  //默認為列顯示,排序為自上而下
1               2.b  9.z    abc         anaconda-ks.cfg  b/     f5           pass
1.a             3    a/     a,b,c       a.py             b.txt  f漢          passwd
2               3.c  a.     abc.tar.gz  a.txt            c/     history.log  sum.sh
2017-04-26.log  88   aaaaa  a.html      a.zip            dd/    info.log
#ls -x  //以行顯示,排序為從左往右
1                1.a   2            2017-04-26.log  2.b   3       3.c         88
9.z              a/    a.           aaaaa           abc   a,b,c   abc.tar.gz  a.html
anaconda-ks.cfg  a.py  a.txt        a.zip           b/    b.txt   c/          dd/
f5               f漢   history.log  info.log        pass  passwd  sum.sh


5.1通配符練習:

touch f{1..5} fa fcd
ls f*
ls f?
touch f漢   //註意漢字也屬於一個字符
ls f?
touch ff.txt
ls f?????   //後綴也屬於字符長度
ll fa    //不帶路徑,即當前路徑
ll ./fa  //顯示為相對路徑
ll ~+/fa   //顯示為絕對路徑
ll f[1-3]  //或者[1,2,3]
ll f[135]  //或者[1,3,5]
touch f{a..f}
touch f{A..F}
ll f[a-c]  //匹配a,A,b,B,c
ll f[a-C]  //匹配a,A,b,B,c,C
ll f[A-C]  //匹配A,b,B,c,C
ll f[ACdf]  //匹配A,C,d,f
ll f[^a-d]  //匹配除了a,A,b,B,c,C,d
ll f[[:lower:]]  匹配小寫字母a,b,c,d...
ll f[[:upper:]]  匹配大寫字母A,B,C,D...
ls -d /etc/*.d  顯示/etc下的所有以.d結尾的文件和目錄
ls -d .*/  顯示目錄下的隱藏目錄,包括.和..
ls -d */  顯示目錄下的非隱藏目錄

#ll [[:digit:]]
-rw-r--r--. 1 root root 0 May 26 17:52 1
-rw-r--r--. 1 root root 0 May 26 17:52 2
-rw-r--r--. 1 root root 0 May 26 17:52 3
#ll [[:digit:]]*
-rw-r--r--. 1 root root 0 May 26 17:52 1
-rw-r--r--. 1 root root 0 May 26 18:06 1.a
-rw-r--r--. 1 root root 0 May 26 17:52 2
-rw-r--r--. 1 root root 0 Apr 26 17:29 2017-04-26.log
-rw-r--r--. 1 root root 0 May 26 18:06 2.b
-rw-r--r--. 1 root root 0 May 26 17:52 3
-rw-r--r--. 1 root root 0 May 26 18:06 3.c
-rw-r--r--. 1 root root 0 May 26 17:52 88
-rw-r--r--. 1 root root 0 May 26 18:06 9.z
#ll [[:digit:]].*
-rw-r--r--. 1 root root 0 May 26 18:06 1.a
-rw-r--r--. 1 root root 0 May 26 18:06 2.b
-rw-r--r--. 1 root root 0 May 26 18:06 3.c
-rw-r--r--. 1 root root 0 May 26 18:06 9.z
#ls f*
f1  f2  f23  f3  f4  f4422  f5  f漢
#ls f?
f1  f2  f3  f4  f5  f漢
#ls f??
f23

此文章為個人學習總結,如有任何問題,[email protected],互相交流。


本文出自 “rackie” 博客,請務必保留此出處http://rackie386.blog.51cto.com/11279229/1929983

一天一命令-ls