每天一(yi)個(ge)linux命令(1):ls命令
ls命(ming)令(ling)是linux下最常用的(de)命(ming)令(ling)。ls命(ming)令(ling)就是list的(de)縮寫缺省下ls用來打印出(chu)當前目錄(lu)的(de)清(qing)單(dan)如果ls指定其他目錄(lu)那么就會(hui)顯示指定目錄(lu)里的(de)文件(jian)(jian)及文件(jian)(jian)夾清(qing)單(dan)。 通過ls 命(ming)令(ling)不(bu)僅(jin)可以查(cha)(cha)看(kan)(kan)linux文件(jian)(jian)夾包含的(de)文件(jian)(jian)而且可以查(cha)(cha)看(kan)(kan)文件(jian)(jian)權限(xian)(包括(kuo)目錄(lu)、文件(jian)(jian)夾、文件(jian)(jian)權限(xian))查(cha)(cha)看(kan)(kan)目錄(lu)信息等等。ls 命令在日(ri)常的(de)linux操作中(zhong)用的(de)很多!
1. 命令格(ge)式:
ls [選項] [目錄(lu)名(ming)]
2. 命令功能:
列出目標(biao)目錄(lu)中(zhong)所有的子目錄(lu)和文件。
3. 常用參(can)數(shu):
-a, –all 列出目錄下(xia)的所有文件(jian)(jian),包括以 . 開頭(tou)的隱含(han)文件(jian)(jian)
-A 同-a,但不列出“.”(表(biao)示當前目錄(lu)(lu))和“..”(表(biao)示當前目錄(lu)(lu)的父目錄(lu)(lu))。
-c 配合 -lt:根據 ctime 排序及顯(xian)示 ctime (文件狀態最后更(geng)改的時間)配合 -l:顯(xian)示 ctime 但(dan)根(gen)據名稱排序否則:根(gen)據 ctime 排序
-C 每欄由上至下列出項目
–color[=WHEN] 控制是否使用(yong)色彩分辨文件。WHEN 可以是'never'、'always'或'auto'其(qi)中之(zhi)一(yi)
-d, –directory 將目錄象文件一樣(yang)顯示(shi),而不(bu)是顯示(shi)其下的文件。
-D, –dired 產生(sheng)適(shi)合 Emacs 的 dired 模式(shi)使用的結果
-f 對輸出的文件不(bu)進行排序,-aU 選項生(sheng)效,-lst 選項失效
-g 類似 -l,但(dan)不列(lie)出(chu)所有者
-G, –no-group 不列出任何有關組的信息
-h, –human-readable 以(yi)容易理解的格式(shi)列(lie)出文(wen)件大小 (例如 1K 234M 2G)
–si 類似 -h,但文件大小取 1000 的次方而不是 1024
-H, –dereference-command-line 使用命令列中的符號(hao)鏈接指示的真(zhen)正目的地
–indicator-style=方式 指定在(zai)每個(ge)項目名稱后(hou)加上(shang)指示符號<方式>:none (默認),classify (-F),file-type (-p)
-i, –inode 印(yin)出每個文(wen)件的(de) inode 號(hao)
-I, –ignore=樣式(shi) 不印(yin)出任何符(fu)合(he) shell 萬用字符(fu)<樣式(shi)>的項目
-k 即(ji) –block-size=1K,以 k 字節(jie)的形式表示文件的大小。
-l 除了文(wen)件名之外,還將文(wen)件的(de)權限、所有者、文(wen)件大小等信息詳細(xi)列出來。
-L, –dereference 當顯示(shi)(shi)符(fu)號鏈(lian)接的文件信息(xi)時,顯示(shi)(shi)符(fu)號鏈(lian)接所指示(shi)(shi)的對象而并非符(fu)號鏈(lian)接本身(shen)的信息(xi)
-m 所有項目以(yi)逗號(hao)分隔,并填滿整(zheng)行行寬(kuan)
-o 類似 -l,顯(xian)示文件的除組信息外的詳細(xi)信息。
-r, –reverse 依相反次(ci)序排列
-R, –recursive 同(tong)時(shi)列(lie)出所有子目錄層
-s, –size 以塊大(da)小(xiao)為單位列出所有文件(jian)的大(da)小(xiao)
-S 根據文件大小(xiao)排序
–sort=WORD 以下(xia)是可(ke)選(xuan)(xuan)用的(de) WORD 和(he)它們代表的(de)相應選(xuan)(xuan)項:
extension -X status -c
none -U time -t
size -S atime -u
time -t access -u
version -v use -u
-t 以文(wen)件(jian)修改時間排序
-u 配合 -lt:顯示訪(fang)問時間而且依訪(fang)問時間排(pai)序
配合 -l:顯示訪問時間(jian)但根據名稱排序
否則(ze):根據訪問時(shi)間排序(xu)
-U 不進行排序;依(yi)文(wen)件系(xi)統原有(you)的次序列出(chu)項目
-v 根據版本(ben)進行排序
-w, –width=COLS 自行指定屏幕寬度而(er)不使(shi)用目前的數值
-x 逐(zhu)(zhu)行(xing)列(lie)出(chu)項目而不是逐(zhu)(zhu)欄列(lie)出(chu)
-X 根據擴展(zhan)名排序
-1 每(mei)行只列(lie)出一個(ge)文件
–help 顯示此(ci)幫助(zhu)信息并離開
–version 顯示版本信息并(bing)離開(kai)
4. 常用范例:
例一:列出/home/peidachang文件夾下(xia)的所有文件和目錄的詳(xiang)細資料
命令:ls -l -R /home/peidachang
在(zai)(zai)(zai)使(shi)用 ls 命(ming)(ming)(ming)(ming)令(ling)時要注意命(ming)(ming)(ming)(ming)令(ling)的格式(shi):在(zai)(zai)(zai)命(ming)(ming)(ming)(ming)令(ling)提示(shi)符后(hou),首先是(shi)(shi)命(ming)(ming)(ming)(ming)令(ling)的關鍵字(zi)(zi),接(jie)下來(lai)是(shi)(shi)命(ming)(ming)(ming)(ming)令(ling)參數(shu),在(zai)(zai)(zai)命(ming)(ming)(ming)(ming)令(ling)參數(shu)之前要有(you)一(yi)短橫線(xian)“-”,所有(you)的命(ming)(ming)(ming)(ming)令(ling)參數(shu)都(dou)有(you)特定的作(zuo)用,自己可以(yi)根(gen)據需要選用一(yi)個(ge)或者多個(ge)參數(shu),在(zai)(zai)(zai)命(ming)(ming)(ming)(ming)令(ling)參數(shu)的后(hou)面是(shi)(shi)命(ming)(ming)(ming)(ming)令(ling)的操(cao)作(zuo)對(dui)象。在(zai)(zai)(zai)以(yi)上(shang)這條命(ming)(ming)(ming)(ming)令(ling)“ ls -l -R /home/peidachang”中,“ls” 是(shi)(shi)命(ming)(ming)(ming)(ming)令(ling)關鍵字(zi)(zi),“-l -R”是(shi)(shi)參數(shu),“ /home/peidachang”是(shi)(shi)命(ming)(ming)(ming)(ming)令(ling)的操(cao)作(zuo)對(dui)象。在(zai)(zai)(zai)這條命(ming)(ming)(ming)(ming)令(ling)中,使(shi)用到了兩個(ge)參數(shu),分別(bie)為“l”和“R”,當然,你也可以(yi)把他們放在(zai)(zai)(zai)一(yi)起使(shi)用,如下所示(shi):
命令:ls -lR /home/peidachang
這種(zhong)形式和上面(mian)(mian)的(de)命(ming)令形式執(zhi)行(xing)(xing)(xing)的(de)結(jie)果是(shi)完全(quan)一樣(yang)的(de)。另外(wai),如果命(ming)令的(de)操作對象位(wei)于當前(qian)目錄中,可(ke)以(yi)直接(jie)(jie)對操作對象進行(xing)(xing)(xing)操作;如果不(bu)在當前(qian)目錄則需要給出(chu)操作對象的(de)完整路(lu)徑(jing),例如上面(mian)(mian)的(de)例子中,我的(de)當前(qian)文(wen)件(jian)(jian)夾(jia)(jia)(jia)是(shi)peidachang文(wen)件(jian)(jian)夾(jia)(jia)(jia),我想對home文(wen)件(jian)(jian)夾(jia)(jia)(jia)下的(de)peidachang文(wen)件(jian)(jian)進行(xing)(xing)(xing)操作,我可(ke)以(yi)直接(jie)(jie)輸入 ls -lR peidachang,也可(ke)以(yi)用(yong) ls -lR /home/peidachang。
例(li)二:列出當前目(mu)錄中所(suo)有以(yi)“t”開頭的目(mu)錄的詳細內(nei)容(rong),可以(yi)使用如下命(ming)令:
命令:ls -l t*
可以查看當(dang)(dang)前(qian)目錄(lu)下文件(jian)名以“t”開頭(tou)的所有(you)文件(jian)的信息。其實,在命令格式中,方括號內的內容都是可以省略(lve)的,對(dui)于命令ls而言,如(ru)果省略(lve)命令參數和操作(zuo)對(dui)象,直接(jie)輸入“ ls ”,則將會列出當(dang)(dang)前(qian)工作(zuo)目錄(lu)的內容清單。
例三:只列出文(wen)件下的子目錄(lu)
命令:ls -F /opt/soft |grep /$
列出(chu) /opt/soft 文件下(xia)面的(de)子(zi)目錄
輸出:
[root@localhost opt]# ls -F /opt/soft |grep /$
jdk1.6.0_16/
subversion-1.6.1/
tomcat6.0.32/
命令:ls -l /opt/soft | grep "^d"
列出(chu) /opt/soft 文件(jian)下(xia)面的子目(mu)錄詳(xiang)細(xi)情況
輸出:
[root@localhost opt]# ls -l /opt/soft | grep "^d"
drwxr-xr-x 10 root root 4096 09-17 18:17 jdk1.6.0_16
drwxr-xr-x 16 1016 1016 4096 10-11 03:25 subversion-1.6.1
drwxr-xr-x 9 root root 4096 2011-11-01 tomcat6.0.32
例四:列出(chu)目前工作(zuo)目錄下(xia)(xia)所(suo)有(you)名稱(cheng)是s 開頭的(de)檔(dang)案,愈(yu)新的(de)排(pai)愈(yu)后面(mian),可(ke)以(yi)使用如下(xia)(xia)命令:
命令(ling):ls -ltr s*
輸出:
[root@localhost opt]# ls -ltr s*
src:
總計 0
script:
總計(ji) 0
soft:
總計 350644
drwxr-xr-x 9 root root 4096 2011-11-01 tomcat6.0.32
-rwxr-xr-x 1 root root 81871260 09-17 18:15 jdk-6u16-linux-x64.bin
drwxr-xr-x 10 root root 4096 09-17 18:17 jdk1.6.0_16
-rw-r--r-- 1 root root 205831281 09-17 18:33 apache-tomcat-6.0.32.tar.gz
-rw-r--r-- 1 root root 5457684 09-21 00:23 tomcat6.0.32.tar.gz
-rw-r--r-- 1 root root 4726179 10-10 11:08 subversion-deps-1.6.1.tar.gz
-rw-r--r-- 1 root root 7501026 10-10 11:08 subversion-1.6.1.tar.gz
drwxr-xr-x 16 1016 1016 4096 10-11 03:25 subversion-1.6.1
例五:列出目(mu)前(qian)工作目(mu)錄下所(suo)有檔案及目(mu)錄;目(mu)錄于名(ming)(ming)稱后(hou)加(jia)(jia)"/", 可執行檔于名(ming)(ming)稱后(hou)加(jia)(jia)"*"
命令:ls -AF
輸出:
[root@localhost opt]# ls -AF
log/ script/ soft/ src/ svndata/ web/
例六:計算當前目(mu)錄下的文件(jian)數和目(mu)錄數
命令:
ls -l * |grep "^-"|wc -l ---文件個數
ls -l * |grep "^d"|wc -l ---目錄個(ge)數(shu)
例七(qi): 在(zai)ls中列出文件的絕對路徑
命令:ls | sed "s:^:`pwd`/:"
輸出:
[root@localhost opt]# ls | sed "s:^:`pwd`/:"
/opt/log
/opt/script
/opt/soft
/opt/src
/opt/svndata
/opt/web
例九:列出當(dang)前目(mu)錄(lu)下的(de)所有(you)文件(jian)(包括隱藏文件(jian))的(de)絕對(dui)路徑, 對(dui)目(mu)錄(lu)不做遞歸(gui)
命(ming)令:find $PWD -maxdepth 1 | xargs ls -ld
輸(shu)出(chu):
[root@localhost opt]# find $PWD -maxdepth 1 | xargs ls -ld
drwxr-xr-x 8 root root 4096 10-11 03:43 /opt
drwxr-xr-x 2 root root 4096 2012-03-08 /opt/log
drwxr-xr-x 2 root root 4096 2012-03-08 /opt/script
drwxr-xr-x 5 root root 4096 10-11 03:21 /opt/soft
drwxr-xr-x 2 root root 4096 2012-03-08 /opt/src
drwxr-xr-x 4 root root 4096 10-11 05:22 /opt/svndata
drwxr-xr-x 4 root root 4096 10-09 00:45 /opt/web
例十:遞(di)歸列(lie)出當前目錄下的所有文(wen)件(包括隱藏文(wen)件)的絕對路徑
命令(ling): find $PWD | xargs ls -ld
例十一(yi):指(zhi)定文件時間輸出格式
命令:
ls -tl --time-style=full-iso
輸出:
[root@localhost soft]# ls -tl --time-style=full-iso
總計 350644
drwxr-xr-x 16 1016 1016 4096 2012-10-11 03:25:58.000000000 +0800 subversion-1.6.1
ls -ctl --time-style=long-iso
輸出:
[root@localhost soft]# ls -ctl --time-style=long-iso
總計(ji) 350644
drwxr-xr-x 16 1016 1016 4096 2012-10-11 03:25 subversion-1.6.1
擴展:
1. 顯示彩色目錄列表
打開/etc/bashrc, 加(jia)入如下一行:
alias ls="ls --color"
下次啟動bash時就可以像在Slackware里那樣顯示(shi)彩色的目(mu)錄(lu)列表了(le), 其(qi)中顏色的含義如下:
1. 藍色(se)-->目(mu)錄(lu)
2. 綠色-->可(ke)執行文件
3. 紅(hong)色-->壓縮文(wen)件
4. 淺藍色-->鏈接(jie)文件
5. 灰色-->其他(ta)文件(jian)
關注 熵減黑客 ,一起學習成長
