Ls
為什麼 ll -d */ 會產生額外的正斜杠?
該命令
ls -d */
僅列出目錄如下Desktop/ Downloads/ Pictures/ snap/ Videos/ Documents/ Music/ Public/ Templates/
該命令
ll -d */
也將結果限制在目錄中,但是會附加一個額外的正斜杠。(
ll
是 的別名ls -alF
)drwxr-xr-x 2 ec ec 4096 Jan 12 06:39 Desktop// drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Documents// drwxr-xr-x 7 ec ec 4096 Jan 12 21:12 Downloads// drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Music// drwxr-xr-x 2 ec ec 4096 Jan 5 20:47 Pictures// drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Public// drwxr-xr-x 3 ec ec 4096 Jan 5 15:16 snap// drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Templates// drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Videos//
如果
ls -ald */
執行該命令,則它不包含額外的正斜杠。drwxr-xr-x 2 ec ec 4096 Jan 12 06:39 Desktop/ drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Documents/ drwxr-xr-x 7 ec ec 4096 Jan 12 21:12 Downloads/ drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Music/ drwxr-xr-x 2 ec ec 4096 Jan 5 20:47 Pictures/ drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Public/ drwxr-xr-x 3 ec ec 4096 Jan 5 15:16 snap/ drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Templates/ drwxr-xr-x 2 ec ec 4096 Jan 4 19:54 Videos/
相反
ls -alFd */
,返回相同的結果ll -d */
根據
man ls
國旗-F
--classify append indicator (one of */=>@|) to entries
。我假設由於 , 設置的附加指示符
-F
,ll -d */
附加了正斜杠,儘管不清楚是否需要或包含附加後綴的價值,即/
如果已經存在,為什麼需要添加另一個後綴?其次,有沒有辦法只列出目錄而
ll -d */
沒有額外的/
?
創建的文件列表
*/
由 shell 生成。它是一個/
已經附加的目錄列表:$ echo */ Desktop/ Documents/ Downloads/ Music/ Pictures/ Public/ snap/ Templates/ Videos/
這是在一個實用程序(shell)中生成的,並提供給另一個實用程序 (
ls
) 以供其進一步解析和處理。那就是得到的列表
ls
。這就是為什麼您需要-d
選擇重複列表而不進入每個目錄的原因。如果你給 ls 添加一個 ‘-p’ 選項,它會在每個目錄後面附加一個附加值,
/
以表明它是一個目錄:$ ls -pd */ Desktop// Documents// Downloads// Music// Pictures// Public// snap// Templates// Videos//
如果 ls 的顏色選項處於活動狀態,您應該看到一種顏色的路徑名和
/
另一種顏色。
-F
ls 選項與該選項類似,但-p
它也可以使用其他字元來表示其他類型的文件(不僅是目錄),其中每個字元來自此列表:*/=>@|