歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux命令

Linux ls命令參數及使用方法詳解

ls命令是Linux系統下最常用的命令。ls命令就是list的縮寫。缺省下ls用來打印出當前目錄的文件及文件夾清單,如果ls指定具體目錄,那麼就會顯示該目錄裡的文件及文件夾清單。 通過ls 命令不僅可以查看Linux文件夾包含的文件,而且還可以查看文件權限(包括目錄、文件夾、文件權限)、查看目錄信息等等。ls是用Linux操作系統用得最多的命令。

命令格式
ls [參數] [目錄名]

參數
  -1   每列僅顯示一個文件或目錄名稱。
  -a或--all   下所有文件和目錄。
  -A或--almost-all   顯示所有文件和目錄,但不顯示現行目錄和上層目錄。
  -b或--escape   顯示脫離字符。
  -B或--ignore-backups   忽略備份文件和目錄。
  -c   以更改時間排序,顯示文件和目錄。
  -C   以又上至下,從左到右的直行方式顯示文件和目錄名稱。
  -d或--directory   顯示目錄名稱而非其內容。
  -D或--dired   用Emacs的模式產生文件和目錄列表。
  -f   此參數的效果和同時指定"aU"參數相同,並關閉"lst"參數的效果。
  -F或--classify   在執行文件,目錄,Socket,符號連接,管道名稱後面,各自加上"*","/","=","@","|"號。
  -g   次參數將忽略不予處理。
  -G或--no-group   不顯示群組名稱。
  -h或--human-readable   用"K","M","G"來顯示文件和目錄的大小。
  -H或--si   此參數的效果和指定"-h"參數類似,但計算單位是1000Bytes而非1024Bytes。
  -i或--inode   顯示文件和目錄的inode編號。
  -I<范本樣式>或--ignore=<范本樣式>   不顯示符合范本樣式的文件或目錄名稱。
  -k或--kilobytes   此參數的效果和指定"block-size=1024"參數相同。
  -l   使用詳細格式列表。
  -L或--dereference   如遇到性質為符號連接的文件或目錄,直接列出該連接所指向的原始文件或目錄。
  -m   用","號區隔每個文件和目錄的名稱。
  -n或--numeric-uid-gid   以用戶識別碼和群組識別碼替代其名稱。
  -N或--literal   直接列出文件和目錄名稱,包括控制字符。
  -o   此參數的效果和指定"-l" 參數類似,但不列出群組名稱或識別碼。
  -p或--file-type   此參數的效果和指定"-F"參數類似,但不會在執行文件名稱後面加上"*"號。
  -q或--hide-control-chars   用"?"號取代控制字符,列出文件和目錄名稱。
  -Q或--quote-name   把文件和目錄名稱以""號標示起來。
  -r或--reverse   反向排序。
  -R或--recursive   遞歸處理,將指定目錄下的所有文件及子目錄一並處理。
  -s或--size   顯示文件和目錄的大小,以區塊為單位。
  -S   用文件和目錄的大小排序。
  -t   用文件和目錄的更改時間排序。
  -T<跳格字符>或--tabsize=<跳格字數>   設置跳格字符所對應的空白字符數。
  -u   以最後存取時間排序,顯示文件和目錄。
  -U   列出文件和目錄名稱時不予排序。
  -v   文件和目錄的名稱列表以版本進行排序。
  -w<每列字符數>或--width=<每列字符數>   設置每列的最大字符數。
  -x   以從左到右,由上至下的橫列方式顯示文件和目錄名稱。
  -X   以文件和目錄的最後一個擴展名排序。
  --block-size=<區塊大小>   指定存放文件的區塊大小。
  --color=<列表格式>   培植文件和目錄的列表格式。
  --full-time   列出完整的日期與時間。
  --help   在線幫助。
  --indicator-style=<標注樣式>   在文件和目錄等名稱後面加上標注,易於辨識該名稱所屬的類型。
  --quoting-syte=<引號樣式>   把文件和目錄名稱以指定的引號樣式標示起來。
  --show-control-chars   在文件和目錄列表時,使用控制字符。
  --sort=<排序方式>   配置文件和目錄列表的排序方式。
  --time=<時間戳記>   用指定的時間戳記取代更改時間。
  --version   顯示版本信息。

用ls -l命令查看某一個目錄會得到一個9個字段的列表.

第1行顯示的信息: 總用量(total)  — 這個數值是該目錄下所有文件及目錄列表第5個字段的和(以k為單位),也就是該目錄的大小.

第1字段:  文件屬性字段
文件屬性字段總共有10個字母組成,第一個字母表示文件類型,如果這個字母是一個減號”-”,則說明該文件是一個普通文件.字母”d”表示該文件是一個目錄,字母”d”,是dirtectory(目錄)的縮寫.
請注意,一個目錄或者說一個文件夾是一個特殊文件,這個特殊文件存放的是其他文件和文件夾的相關信息.

第2字段:文件硬鏈接數或目錄子目錄數

第3字段:文件擁有者

第4字段:文件擁有者所在的組

第5字段:文件文件大小(以字節為單位)

第6字段:文件創建月份

第7字段:文件創建日期

第8字段:文件創建時間

第9字段:文件名 (如果是一個符號鏈接,那麼會有一個 “->” 箭頭符號,後面根一個它指向的文件)

范例
例一:列出/root/linuxeye文件夾下的所有文件和目錄的詳細資料
命令:ls -l -R /root/linuxeye
在使用 ls 命令時要注意命令的格式:在命令提示符後,首先是命令的關鍵字,接下來是命令參數,在命令參數之前要有一短橫線“-”,所有的命令參數都有特定的作用,自己可以根據需要選用一個或者多個參數,在命令參數的後面是命令的操作對象。在以上這條命令“ ls -l -R /root/linuxeye”中,“ls” 是命令關鍵字,“-l -R”是參數,“ /root/linuxeye”是命令的操作對象。在這條命令中,使用到了兩個參數,分別為“l”和“R”,當然,你也可以把他們放在一起使用,如下所示:
命令:ls -lR /root/linuxeye
這種形式和上面的命令形式執行的結果是完全一樣的。另外,如果命令的操作對象位於當前目錄中,可以直接對操作對象進行操作;如果不在當前目錄則需要給出操作對象的完整路徑,例如上面的例子中,我的在當前家(root)目錄下,我想對家(root)目錄下的linuxeye文件進行操作,我可以直接輸入 ls -lR linuxeye,也可以絕對路徑用 ls -lR /root/linuxeye。

例二:列出當前目錄中所有以“D”開頭的目錄下的詳細內容,可以使用如下命令:
命令:ls -l D*   
可以查看當前目錄下文件名以“D”開頭的所有文件的信息。其實,在命令格式中,方括號內的內容都是可以省略的,對於命令ls而言,如果省略命令參數和操作對象,直接輸入“ ls ”,則將會列出當前工作目錄的內容清單。

例三:只列出當前目錄下的子目錄
# ls -F | grep /$
Django-1.5.1/
wd/

列出當前目錄下的子目錄詳細情況
# ls -l | grep "^d"
drwxr-xr-x 9 www  games    4096 Apr 15 21:11 Django-1.5.1
drwxr-xr-x 2 root root     4096 Jun  5 18:44 wd

例四:列出目前工作目錄下所有名稱是"D"開頭的檔案,越新的排愈後面,可以使用如下命令:
# ls -ltr D*
-rw-r--r-- 1 root root  8028963 Mar 29 04:37 Django-1.5.1.tar.gz

Django-1.5.1:
total 84
-rw-r--r--  1 www  games  1558 Jun  6  2012 LICENSE
-rw-r--r--  1 www  games  1776 Jun  6  2012 README.rst
-rw-r--r--  1 www  games   667 Jun  6  2012 INSTALL
-rw-r--r--  1 www  games   112 Sep 10  2012 setup.cfg
-rw-r--r--  1 www  games  1566 Mar 29 04:07 MANIFEST.in
-rw-r--r--  1 www  games 21355 Mar 29 04:07 AUTHORS
-rw-r--r--  1 www  games  5395 Mar 29 04:09 setup.py
drwxr-xr-x  5 www  games  4096 Mar 29 04:28 tests
drwxr-xr-x  2 www  games  4096 Mar 29 04:28 scripts
drwxr-xr-x  2 www  games  4096 Mar 29 04:28 extras
drwxr-xr-x 13 www  games  4096 Mar 29 04:28 docs
-rw-r--r--  1 www  games  1229 Mar 29 04:28 PKG-INFO
drwxr-xr-x 17 www  games  4096 Apr 15 21:09 django
drwxr-xr-x  4 root root   4096 Apr 15 21:09 build
drwxr-xr-x  4 root root   4096 Apr 15 21:33 linuxeye

例五:列出目前工作目錄下所有檔案及目錄;目錄於名稱後加"/", 可執行檔於名稱後加"*"
# ls -AF
account_info.tmp     contact_list.txt_bak  data.pkl             fseek.py      tmp.txt        zidian.py
account_info.txt     contact_query2.py     Django-1.5.1/        shop_list.py  try_except.py
account_info.txt_bk  contact_query.py      Django-1.5.1.tar.gz  shops.txt     typechk.py
ATM.py               c.py                  finput.py            test.py*      wd/
contact_list.txt     credit_account.log    f.py                 test.txt      while.py*

例六:計算當前目錄下的文件數和目錄數
命令:
# ls -l | grep "^-" | wc -l    #文件個數  
# ls -l | grep "^d" | wc -l   #目錄個數

例七: 在ls中列出文件的絕對路徑
# ls | sed "s:^:`pwd`/:"
/root/linuxeye/Django-1.5.1
/root/linuxeye/Django-1.5.1.tar.gz
/root/linuxeye/finput.py
/root/linuxeye/f.py
/root/linuxeye/fseek.py
/root/linuxeye/shop_list.py
/root/linuxeye/shops.txt
/root/linuxeye/test.py
/root/linuxeye/test.txt
/root/linuxeye/tmp.txt
/root/linuxeye/try_except.py
/root/linuxeye/typechk.py
/root/linuxeye/wd
/root/linuxeye/while.py
/root/linuxeye/zidian.py

例九:列出當前目錄下的所有文件(包括隱藏文件)的絕對路徑, 對目錄不做遞歸
# find $PWD -maxdepth 1 | xargs ls -ld
drwxr-xr-x 9 www  games    4096 Apr 15 21:11 /root/linuxeye/Django-1.5.1
-rw-r--r-- 1 root root  8028963 Mar 29 04:37 /root/linuxeye/Django-1.5.1.tar.gz
-rw-r--r-- 1 root root      174 Apr 17 22:15 /root/linuxeye/finput.py
-rw-r--r-- 1 root root      270 Apr 20 21:09 /root/linuxeye/f.py
-rw-r--r-- 1 root root      122 Apr 17 22:56 /root/linuxeye/fseek.py
-rw-r--r-- 1 root root     1291 Apr 22 22:46 /root/linuxeye/shop_list.py
-rw-r--r-- 1 root root       67 Apr 22 21:06 /root/linuxeye/shops.txt
-rwxr-xr-x 1 root root      212 May  6 11:34 /root/linuxeye/test.py
-rw-r--r-- 1 root root      775 Apr 21 21:21 /root/linuxeye/test.txt
-rw-r--r-- 1 root root      101 May  7 18:19 /root/linuxeye/tmp.txt
-rw-r--r-- 1 root root      309 May 24 16:10 /root/linuxeye/try_except.py
-rw-r--r-- 1 root root      337 Mar 22 16:15 /root/linuxeye/typechk.py
drwxr-xr-x 2 root root     4096 Jun  5 18:44 /root/linuxeye/wd
-rwxr-xr-x 1 root root      368 Apr  9 22:52 /root/linuxeye/while.py
-rw-r--r-- 1 root root      328 May  7 14:29 /root/linuxeye/zidian.py

例十:遞歸列出當前目錄下的所有文件(包括隱藏文件)的絕對路徑
# find $PWD | xargs ls -ld

例十一:指定文件時間輸出格式
drwxr-xr-x 9 www  games    4096 2013-04-15 21:11:10.000000000 +0800 Django-1.5.1
-rw-r--r-- 1 root root     2017 2013-04-12 18:44:46.000000000 +0800 contact_query.py
-rwxr-xr-x 1 root root      368 2013-04-09 22:52:27.000000000 +0800 while.py
-rw-r--r-- 1 root root  8028963 2013-03-29 04:37:33.000000000 +0800 Django-1.5.1.tar.gz
-rw-r--r-- 1 root root      337 2013-03-22 16:15:02.000000000 +0800 typechk.py

顯示彩色目錄列表
打開/etc/bashrc, 加入如下一行:
alias ls="ls --color"
下次啟動bash時就可以像在Slackware裡那樣顯示彩色的目錄列表了, 其中顏色的含義如下:
  • 藍色-->目錄
  • 綠色-->可執行文件
  • 紅色-->壓縮文件
  • 淺藍色-->鏈接文件
  • 灰色-->其他文件
Copyright © Linux教程網 All Rights Reserved