Linux運維基礎之ls命令詳解

Linux運維基礎之ls命令詳解

Linux 命令 ls  用於列出當前目錄下的檔案和目錄。當你在終端中鍵入 ls 並按下 Enter 時,它會顯示當前目錄下的所有檔案和資料夾。這是一個基本命令,通過提供檔案系統內容概覽,幫助使用者瀏覽和管理檔案系統。

你還可以使用 ls 命令的各種選項來檢視更多細節,如檔案許可權、所有權、檔案大小和修改日期。在本篇文章中,我們將探討 ls 命令的所有可能用途。

ls 命令的一般語法:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
$ ls [OPTION...] [FILE...]
$ ls [OPTION...] [FILE...]
$ ls [OPTION...] [FILE...]

1. 顯示隱藏檔案

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls -a
ls -a
ls -a

該選項將顯示整個目錄列表,包括隱藏檔案。隱藏檔案以點(.)

例子:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
. .. .config .bashrc file1.txt folder1 .hiddenfolder picture.jpg
. .. .config .bashrc file1.txt folder1 .hiddenfolder picture.jpg
.  ..  .config  .bashrc  file1.txt  folder1  .hiddenfolder  picture.jpg

在本例中,單點( . )代表當前目錄,雙點( .. )代表父目錄。 .config.bashrc 檔案以及 .hiddenfolder 是隱藏的檔案和目錄,在普通 ls 命令中不會顯示,但在這裡由於使用了 -a 選項而顯示出來。其他專案是常規的非隱藏檔案和目錄。

2. 按檔案大小排序

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls -S
ls -S
ls -S

使用 ls -S 命令按大小降序對檔案和目錄進行排序,然後將它們列印到終端。

例子:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
file_large.mp4
image1.jpg
document.pdf
textfile.txt
folder1/
folder2/
file_large.mp4 image1.jpg document.pdf textfile.txt folder1/ folder2/
file_large.mp4
image1.jpg
document.pdf
textfile.txt
folder1/
folder2/

在本例中, file_large.mp4 是最大的檔案, textfile.txt 是最小的檔案。目錄 folder1/folder2/ 也被列出,但 -S 選項在排序時不考慮它們的大小。如果想檢視檔案大小,可以將 -S 選項與 -l 選項結合使用,如 ls -lS

3. 顯示長格式檔案

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls -l
ls -l
ls -l

-l 選項可以更詳細地顯示目錄內容。顯示檔案的所有者和組、最後修改時間等。

例子:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
total 48
drwxr-xr-x 5 user user 4096 Aug 6 10:30 Documents
-rw-r--r-- 1 user user 123 Aug 6 10:20 file.txt
drwxr-xr-x 2 user user 4096 Aug 6 10:15 Music
-rwxr-xr-x 1 user user 2048 Aug 6 10:10 script.sh
drwxr-xr-x 3 user user 4096 Aug 6 10:05 Pictures
total 48 drwxr-xr-x 5 user user 4096 Aug 6 10:30 Documents -rw-r--r-- 1 user user 123 Aug 6 10:20 file.txt drwxr-xr-x 2 user user 4096 Aug 6 10:15 Music -rwxr-xr-x 1 user user 2048 Aug 6 10:10 script.sh drwxr-xr-x 3 user user 4096 Aug 6 10:05 Pictures
total 48
drwxr-xr-x 5 user user 4096 Aug  6 10:30 Documents
-rw-r--r-- 1 user user  123 Aug  6 10:20 file.txt
drwxr-xr-x 2 user user 4096 Aug  6 10:15 Music
-rwxr-xr-x 1 user user 2048 Aug  6 10:10 script.sh
drwxr-xr-x 3 user user 4096 Aug  6 10:05 Pictures

以下是每個部分的詳細說明:

  • drwxr-xr-x: 檔案許可權(例如, d 表示目錄, rwx 表示所有者的讀取、寫入和執行許可權)。
  • 5: 檔案或目錄的硬連結數量。
  • user: 檔案或目錄的所有者(列出兩次,一次是所有者,一次是組)。
  • 4096: 檔案大小(以位元組為單位)。
  • Aug 6 10:30: 檔案或目錄最後一次修改的日期和時間。
  • Documents: 檔案或目錄的名稱。

4. 按日期和時間排序

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls -t
ls -t
ls -t

該命令按最後修改時間對檔案進行排序。最近編輯的檔案將顯示在輸出結果的頂部,便於查詢。

例子:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
report.txt image.png project/ notes.docx old_data.csv
report.txt image.png project/ notes.docx old_data.csv
report.txt  image.png  project/  notes.docx  old_data.csv

在本例中, report.txt 是最近修改的檔案,而 old_data.csv 則是最舊的檔案。如果在不同的目錄或不同的時間執行該命令,輸出結果將根據特定目錄中的檔案及其修改時間而有所不同。

5. 只顯示目錄

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls -d */
ls -d */
ls -d */

使用此命令可列出不包括所有其他檔案的子目錄。

例子:

下面是該命令的輸出示例,假設當前目錄中有三個名為 DocumentsPictures, 和 Music 的目錄:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
Documents/ Pictures/ Music/
Documents/ Pictures/ Music/
Documents/  Pictures/  Music/

每個目錄名後都有一個斜線 ( / ),表示它是一個目錄。

6. 列出檔案並將結果儲存到檔案中

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls > [filename]
ls > [filename]
ls > [filename]

使用 ls > [filename] 命令可以將前一條命令的輸出儲存到檔案中。

例子:

ls > filename.txt 命令不會在終端中顯示任何輸出。相反,它會將 ls 命令的輸出重定向到名為 filename.txt 的檔案。

如果你在一個包含檔案和資料夾的目錄中執行 ls 命令,這些檔案和資料夾的名稱將被寫入 filename.txt。你不會在終端中看到任何內容。

下面是 filename.txt 目錄中包含三個檔案和一個資料夾的示例:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
file1.txt
file2.jpg
folder1
file3.pdf
file1.txt file2.jpg folder1 file3.pdf
file1.txt
file2.jpg
folder1
file3.pdf

具體內容取決於執行該命令時當前目錄下的檔案和目錄。

7. 列出檔案所有者及其 ID

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
ls -n
ls -n
ls -n

該選項以 UIDGID 顯示所有者和組。

例子:

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
drwxr-xr-x 2 1001 1001 4096 Apr 1 12:34 directory1
-rw-r--r-- 1 1001 1001 0 Apr 1 12:34 file1.txt
-rwxr-xr-x 1 1002 1002 123 Apr 1 12:34 script.sh
drwxr-xr-x 2 1001 1001 4096 Apr 1 12:34 directory1 -rw-r--r-- 1 1001 1001 0 Apr 1 12:34 file1.txt -rwxr-xr-x 1 1002 1002 123 Apr 1 12:34 script.sh
drwxr-xr-x 2 1001 1001 4096 Apr  1 12:34 directory1
-rw-r--r-- 1 1001 1001    0 Apr  1 12:34 file1.txt
-rwxr-xr-x 1 1002 1002  123 Apr  1 12:34 script.sh

在此示例中,第一列顯示檔案許可權,第二列顯示硬連結數量,第三和第四列顯示使用者和組 ID,第五列顯示檔案大小(以位元組為單位),第六和第七列顯示上次修改的日期和時間。最後一列顯示檔案或目錄的名稱。

更多 Linux 命令

下面羅列了最常見的一些 Linux 命令,您可以根據自己的需要查閱對應命令的詳細解析:

目錄操作 rmdir · cd · pwd · exa · ls
檔案操作 cat · cp · dd · less · touch · ln · rename · more · head
檔案系統操作 chown · mkfs · locate
網路 ping · curl · wget · iptables · mtr
搜尋和文字處理 find · grep · sed · whatis · ripgrep · fd · tldr
系統資訊和管理 env · history · top · who · htop · glances · lsof
使用者和會話管理 screen · su · sudo · open

此外,我們還整理 Linux 命令列大全,以幫助大家全面深入地學習 Linux。

評論留言