在Linux系統中,ls
指令是一個關鍵工具,用於列出目錄中的文件和子目錄。本文將深入介紹 ls
指令的不同用法,包括列表顯示、排序和篩選,以及其他選項,以幫助你更好地管理和查看文件系統。
基本用法
參數 | 描述 |
---|---|
ls | 列出當前目錄中的所有文件和子目錄。 |
ls /path/to/dir | 列出指定目錄的內容。 |
範例
基本的 ls
用法
$ ls
文件1.txt 文件2.txt 目錄1 目錄2
列出特定目錄
$ ls /path/to/directory
文件3.txt 文件4.txt 子目錄1 子目錄2
列表顯示
參數 | 描述 |
---|---|
ls -l | 以列表視圖顯示文件和目錄的詳細信息,包括權限、所有者等。 |
ls -a | 顯示所有文件,包括隱藏文件(以點開頭)。 |
ls -lh | 可讀的格式顯示文件大小(例如1K、2M)。 |
範例
列表
$ ls -l
總計 16
-rw-r--r-- 1 user user 1234 9月 12 10:00 文件1.txt
-rw-r--r-- 1 user user 5678 9月 12 10:01 文件2.txt
drwxr-xr-x 2 user user 4096 9月 12 10:02 目錄1
drwxr-xr-x 2 user user 4096 9月 12 10:03 目錄2
顯示隱藏文件
$ ls -a
. .. .隱藏文件1 .隱藏文件2 文件1.txt 文件2.txt 目錄1 目錄2
可讀的格式顯示文件大小
$ ls -lh
總計 16K
-rw-r--r-- 1 user user 1.2K 9月 12 10:00 文件1.txt
-rw-r--r-- 1 user user 5.6K 9月 12 10:01 文件2.txt
drwxr-xr-x 2 user user 4.0K 9月 12 10:02 目錄1
drwxr-xr-x 2 user user 4.0K 9月 12 10:03 目錄2
排序和篩選
參數 | 描述 |
---|---|
ls -t | 按照修改時間進行排序。 |
ls -r | 以反向順序列出文件。 |
ls -R | 遞歸列出子目錄中的內容。 |
ls -ltr | 按照修改時間反向排序並以列表視圖顯示。 |
ls -lS | 按照文件大小排序並以列表視圖顯示。 |
範例
按時間排序
$ ls -t
文件2.txt 文件1.txt 目錄2 目錄1
反向排序
$ ls -r
目錄2 目錄1 文件2.txt 文件1.txt
遞歸列出子目錄中的內容
$ ls -R
.:
文件1.txt 文件2.txt 目錄1 目錄2
./目錄1:
子文件1.txt 子文件2.txt
./目錄2:
子文件3.txt 子文件4.txt
按照修改時間反向排序並以列表視圖顯示
$ ls -ltr
總計 16
-rw-r--r-- 1 user user 5678 9月 12 10:01 文件2.txt
-rw-r--r-- 1 user user 1234 9月 12 10:00 文件1.txt
drwxr-xr-x 2 user user 4096 9月 12 10:03 目錄2
drwxr-xr-x 2 user user 4096 9月 12 10:02 目錄1
檔案類型和權限
參數 | 描述 |
---|---|
ls -F | 在文件名後面添加文件類型標記,例如斜杠表示目錄。 |
ls -l | 查看文件的詳細權限信息。 |
ls -ld | 顯示目錄本身的詳細信息。 |
ls -n | 以數字形式顯示使用者和群組的ID。 |
範例
顯示檔案類型
$ ls -F
文件1.txt 文件2.txt 目錄1/ 目錄2/
-F
依照檔案類型來標示的字元有以下幾種:
#檔案名稱以 "@" 結尾:這表示該檔案是一個連結檔(symbolic link)。
myfile@
#檔案名稱以 "*" 結尾:這表示該檔案是一個可執行檔(executable)。
program*
#檔案名稱以 "=" 結尾:這表示該檔案是一個 socket 檔。
mysocket=
#檔案名稱以 "|" 結尾:這表示該檔案是一個 pipe 檔。
mypipe|
#檔案名稱以 ">" 結尾:這表示該檔案是一個 door 檔。
mydoor>
#檔案名稱以 "/" 結尾:這表示該檔案是一個目錄。
mydirectory/
顯示詳細權限
$ ls -l
總計 16
-rw-r--r-- 1 user user 1234 9月 12 10:00 文件1.txt
-rw-r--r-- 1 user user 5678 9月 12 10:01 文件2.txt
drwxr-xr-x 2 user user 4096 9月 12 10:02 目錄1
drwxr-xr-x 2 user user 4096 9月 12 10:03 目錄2
顯示目錄本身的詳細信息
$ ls -ld
drwxr-xr-x 2 user user 4096 9月 12 10:02 .
以數字形式顯示使用者和群組的ID
$ ls -n
文件1.txt 文件2.txt 目錄1/ 目錄2/
其他選項
參數 | 描述 |
---|---|
ls -l --time-style | 時間格式顯示修改時間。 |
ls --format | 以符號分隔的格式顯示文件名。 |
ls --sort | 按照文件擴展名進行排序。 |
ls --width | 設置輸出的寬度。 |
ls -B | 不顯示多餘的空白。 |
ls --color | 使用顏色標記文件。 |
範例
時間格式顯示修改時間
full-iso
:以ISO 8601的完整日期和時間格式顯示修改時間。
$ ls -l --time-style=full-iso
-rw-r--r-- 1 user user 2023-09-12 10:00:00.000000000 +0000 文件1.txt
long-iso
:以長格式的ISO 8601格式顯示修改時間(YYYY-MM-DD HH:MM)。
$ ls -l --time-style=long-iso
-rw-r--r-- 1 user user 2023-09-12 10:00 文件1.txt
iso
:以簡化的ISO 8601格式顯示修改時間(YYYY-MM-DD)
$ ls -l --time-style=iso
-rw-r--r-- 1 user user 2023-09-12 文件1.txt
locale
:以本地語言和格式顯示修改時間。
$ ls -l --time-style=locale
-rw-r--r-- 1 user user 12 9月 12 10:00 文件1.txt
這些不同的時間顯示格式讓你可以根據自己的偏好和需求來選擇,以便更容易閱讀和理解文件的修改時間。
以符號分隔的格式顯示文件名
long
:長格式,類似於ls -l
,顯示詳細信息,包括文件權限、所有者、大小等。
$ ls --format=long
-rw-r--r-- 1 user user 1234 9月 12 10:00 文件1.txt
commas
:以逗號分隔的格式顯示文件名。
$ ls --format=commas
文件1.txt, 文件2.txt, 目錄1, 目錄2
across
:橫向顯示文件列表。
$ ls --format=across
文件1.txt 文件2.txt 目錄1 目錄2
verbose
:詳細模式,以更多信息顯示文件列表,包括文件的inode號碼。
$ ls --format=verbose
inode 文件1.txt
inode 文件2.txt
inode 目錄1
inode 目錄2
這些不同的文件列表輸出格式可以根據你的需求來選擇,以便更好地查看文件的信息和組織。
按照文件擴展名進行排序
extension
:按照文件擴展名進行排序,對文件進行字母順序排序。size
:按照文件大小進行排序,由小到大排列。time
:按照修改時間進行排序,最新的文件顯示在前面。version
:按照版本號進行排序,對文件進行字母順序排序。
這些不同的排序選項允許你根據不同的標準來排列文件,以滿足你的需要,並更輕鬆地找到所需的文件。
使用顏色標記文件
always
:加入顏色。never
:不加入顏色。auto
:自動判定是否加入顏色。
預設情況下,ls
命令會自動加入顏色,即使沒有指定顯示顏色的選項。若將其設置為auto
,則ls
命令只會在輸出到終端時加入顏色。
- 中文參考資料:
- 英文參考資料:
延伸閱讀:如何計算檔案中字數、行數?使用 Linux wc 教學與範例
延伸閱讀:如何讓 Linux 使用者免密碼安全執行 root 權限的指令?su 與 sudo 範例教學