這裡敘述了 Linux 系統中 ls 指令的各種用法,並蒐集了各式各樣的常用範例。

ls 是 Linux 系統上最常被使用的指令之一,通常我們開啟終端機之後,第一個會執行的指令就是 ls。我們可能幾乎天天都在使用它,但是有些參數可能還是不熟悉如何使用,以下我們介紹各種 ls 指令的用法,並且提供一些常用範例作為參考。

ls 指令基本用法

不加任何參數

直接執行 ls 帶任何參數的話,會列出目前目錄中的檔案與目錄列表。

ls

ls 指令輸出

檔案詳細資訊

-l 參數可以顯示檔案與目錄的詳細資訊。

ls -l

ls -l 指令輸出

顯示隱藏檔案

-a 參數可以顯示隱藏的檔案與目錄。

ls -a

ls -a 指令輸出

使用易讀的格式輸出

-h 參數可以讓輸出的資訊以比較容易閱讀的格式呈現。

ls -lh

ls -lh 指令輸出

顯示檔案類型

-F 參數可以讓檔案名稱的後面加上檔案類型的標示字元。

ls -F

ls -lh 指令輸出

-F 依照檔案類型來標示的字元有以下幾種:

  • @:連結檔(symbolic link)。
  • *:可執行檔(executable)。
  • =:socket 檔。
  • |:pipe 檔。
  • >:door 檔。
  • /:目錄。

反向排序檔案

-r 參數可以讓檔案的列表以反向的排序列出。

ls -r

ls -r 指令輸出

遞迴列出所有子目錄的檔案

-R 參數可以靠遞迴的方式列出所有子目錄的檔案。

ls -R

ls -R 指令輸出

依照時間排序檔案

若要讓檔案依照時間排序,讓最新的檔案排在最後,可以使用 -ltr

ls -ltr

這樣的方式可以很快速的看出目錄中最新的檔案是那一些:

ls -ltr 指令輸出

依照檔案大小排序

-S 可以讓檔案依照檔案的大小來排序:

ls -lS

ls -lS 指令輸出

若要方便快速找出最大的幾個檔案,可以將檔案列表以反向排序:

ls -lSr

列出 Inode

每個檔案都有一個 inode 屬性,若要列出每個檔案的 inode,可以使用 -i 參數:

ls -i

ls -i 指令輸出

版本資訊

--version 參數可以輸出 ls 版本資訊。

ls --version

ls –version 指令輸出

列出目錄

-d 參數可以讓 ls 只列出目錄:

ls -ld

ls -ld 指令輸出

顯示 UID 與 GID

-n 參數可以讓 ls 顯示使用者的 UID 與群組的 GID 值:

ls -n

ls -n 指令輸出

ls 指令進階用法

自訂時間輸出格式

ls 可以允許使用者自訂輸出的時間格式,而指定時間格式的方式有兩種,一種是使用 --time-style 參數:

ls -l --time-style=full-iso

ls -l –time-style=full-iso 指令輸出

--time-style 參數所支援的選項有:

選項說明
full-iso例如 2015-07-20 04:36:03.000000000 +0800
long-iso例如 2015-07-20 04:36
iso例如 04-15 14:232015-07-20
locale例如 7月 20

另外也可以使用 +FORMAT 這種樣板來指定時間格式,其使用方式與 date 指令所使用的樣板相同,以下是一些使用範例。

樣板輸出範例
+%Y/%m/%d2016/06/12
+"%Y-%m-%d %H:%M"2016-06-12 05:59
+%r上午 11時16分28秒

關於樣板的使用,請參考 date 指令線上手冊(man page)。

自訂檔案輸出格式

ls 允許使用者更改預設檔案輸出的排版方式,例如改用逗點分隔的方式輸出:

ls --format=commas

ls –format=commas 指令輸出

以下是 --format 支援的選項:

  • verboselong,等同於 -l
  • commas,等同於 -m
  • horizontalacross,等同於 -x
  • vertical,等同於 -C
  • single-column,等同於 -1

自訂排序方式

--sort 可以用來指定檔案的排序方式,例如根據檔案的副檔名排序:

ls --sort=extension

ls –sort=extension 指令輸出

以下是 --format 支援的選項:

  • none:不排序,等同於 -U
  • size:根據檔案大小排序,等同於 -S
  • time:根據檔案時間排序,等同於 -t
  • version:根據檔名中的版本號碼排序,等同於 -v
  • extension:根據檔案的副檔名排序,等同於 -X

指定輸出版面寬度

--width 參數可以指定輸出的版面寬度,例如將輸出版面指定為 60 個字元寬:

ls --width=60

ls –width=60 指令輸出

隱藏備份檔

Linux 上許多的文字編輯器都有自動備份的功能,在使用者更改檔案內容之後,編輯器會自動將舊的檔案內容另存一個備份檔,而備份檔的檔名即為原檔名外加一個 ~ 符號。若不想在執行 ls 時看到一大堆備份檔,可以加上 -B 參數:

ls -B

linux-ls-command-18

加入 -B 參數之後,所有 ~ 結尾的檔案都不會被顯示出來,可讓畫面更簡潔。

顏色輸出

--color 參數可以調整檔案輸出時是否要加上顏色,若不想加入顏色,可以執行:

ls --color=never

ls –color=never 指令輸出

可用的選項有:

  • always:加入顏色。
  • never:不加入顏色。
  • auto:自動判定是否加入顏色。

在預設的情況下 ls 都會自動加入顏色(always),若設為 auto 的話,ls 只有在終端機輸出時才會加入顏色。

參考資料