ls -d 是什麼意思?
我進入 的手冊頁
ls
,該-d
選項的條目如下:-d, –directory 列出目錄條目而不是內容,並且不取消引用符號連結
所以,我認為 ls -d 將顯示給定目錄中的所有目錄。但是我進入了一個目錄並嘗試了兩個不同的命令:
- 獲取目錄:
ls -l | grep ^d
這個有效,所有 7 個目錄都被顯示 2. 獲取目錄 with
ls -d
這個不顯示7個目錄,只顯示一個點.
我不明白我是否錯誤地使用了該選項,或者我誤解了它的含義,該
-d
選項的實際含義和用法是什麼?
ls -d
顯示有關目錄或符號連結的資訊 - 此資訊(簡單來說)是其各自的路徑。合乎邏輯的假設是d代表directory,因為我遇到的 UNIX 術語中最基本的定義是“列出目錄”。從表面上看,這似乎沒有那麼有用。假設您目前位於具有 2 個子目錄的目錄中:
documents music
如您在上面正確說明的那樣,不使用
ls documents
任何選項將為您提供*文件內容的列表。*使用ls -d documents
只會列印名稱 - 因為該文件夾的路徑,相對於您目前所在的位置 - 與其名稱相同 -文件!這可以擴展(儘管在它的基本用法中有些多餘)ls -d $PWD/*
,它將顯示所有文件和文件夾,但帶有它們的工作目錄(因此 PWD - 以前的工作目錄)。與 * 運算符結合使用時,它確實有一個有用的功能 -
ls -d */
將僅顯示目前工作目錄中的目錄。將焦點轉向定義的符號連結部分,如果您要使用
ls -d ~
- 波浪號擴展 - 它將列印目前 HOME 目錄的路徑。這可以用於不同的應用程序(取決於作業系統)並且確實有一些實際用途;您可以將您的語句進一步修改為ls -d ~your-username
,ls -d ~another-username
或者ls -d ~root
為這些使用者提供 HOME 路徑。另一個例子可以在 apache 伺服器環境中看到,這裡使用使用者名類似地顯示到其託管空間的路徑(相對而言,它們的 HOME 目錄)。有多種功能可以與此結合使用,但以上涵蓋了操作符背後的核心功能——簡而言之,-d是一個專門顯示目錄/路徑資訊的操作符。如果您想進一步調查,有一個很好的程式碼生成器可以使用 ls 函式(包括一些 -d 功能):ls 程式碼生成器。