歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux命令 >> Linux ls命令參數及使用方法詳解

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

日期:2017/2/27 16:37:39   编辑:Linux命令
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