Linux
ls -A 有什麼作用?
ls -A 有什麼作用?我找到了這個 shell 腳本,但我不知道 ls -A 做了什麼。在手冊中它寫道,
ls -A == do not list implied . and ..
但我不明白這是什麼意思。dir=./$1 if [[ -z $(ls -A $dir) ]]
通常
ls
不列印以點開頭的文件名。With-a
,確實如此,但包括.
and..
,它存在於所有目錄中,因此不是很有趣。用-A
它列印除這兩個之外的所有內容。$ touch normal .hidden $ ls normal $ ls -a ./ ../ .hidden normal $ ls -A .hidden normal
在該 if 語句中,命令替換
$( .. )
擷取 的輸出ls
,並[[ -z ... ]]
測試它是否為空字元串。也就是說,目錄中沒有文件。通常,讀取 的輸出
ls
不是一個好主意,如果你想在 shell 中循環文件,你可以使用*
. 在這裡,它應該可以工作,除瞭如果給定的目錄名稱包含空格(或文件名全域字元),它們將在命令行上展開ls
,這可能會弄亂結果。看: