我的工作目錄中有幾個文件,我想打印所有的文本文件,問題出在我的WD上也是目錄。這意味着,當我輸入:Bash:使用通配符區分文件和目錄
cat *
輸出是:
9 Tom Grapes 28
10 Ben Lemon 21
11 Paul Lime 37
Next cool file
cat: yang: Is a directory
cat: ying: Is a directory
我想刪除這些 '錯誤信息',所以我嘗試:
cat *[!/]
,但它只是退貨:
cat: '*[!/]': No such file or directory
但是另一種方式ar ound:只有
cat */
打印:
cat: yang: Is a directory
cat: ying: Is a directory
這是否意味着一切,甚至文件結尾加上一個斜線?如果是,是否有辦法區分文件和目錄?如果沒有,爲什麼這個通配符不起作用?
PS:我使用的是Linux
的注意事項旁白:你正在使用bash,但如果你是自由選擇外殼,你可以考慮使用Zsh。在zsh中很難解決的幾個問題很容易(儘管有時看起來有點神祕)。在你的情況下,Zsh命令將是'cat *(^ /)'。括號中的表達式表示「沒有目錄」。就像bash的對手一樣,如果沒有純文件就會出錯。如果你想在這種情況下,貓只是不寫任何東西,你會做'貓*(N^/)/ dev/null'。 * N *表示:如果沒有文件匹配,則用空字符串替換glob模式。 – user1934428