Bash
是否有正確的方法列出目前目錄的子目錄?
我可以通過以下方式找到目錄的子目錄
ls -d -- */
要麼
ls -l | grep "^d"
但是這兩個似乎都是間接的,我想會有一種標準的方法來查找目錄。有正確的方法嗎?如果不是,這些中的任何一個都會導致邊緣情況下的不良行為嗎?(符號連結、隱藏目錄等)
答案將更多地取決於您打算對輸出**做什麼,**而不是您正在尋找什麼。如果您只想在終端上查看列表以供視覺參考,那麼您的第一個解決方案實際上非常好。如果要處理輸出,則應考慮使用另一種方法。
將列表輸入另一個程序的最可靠的方法之一是使用
find
.find -maxdepth 1 -type d
這對提要有利的原因是,它
find
可以-print0
使用-exec
. 有關為什麼這比解析 ls 的輸出更好的參考,請參閱Greg 的 Wiki 上的ParsingLS 。