Tree
如何使樹只輸出文件?
tree
可以-d
選擇 "List directories only.
"。但是,我似乎找不到“僅列出文件”的選項。我瀏覽了手冊頁,但似乎找不到僅列出文件的選項。
正如其他人在評論中所說,僅列出非目錄並不完全符合
tree
命令的目的。但是,如果您像我一樣喜歡使用自定義的 over (也許您甚至使用您喜歡的標誌和參數別名),那麼僅列出目前目錄中的文件並不少見。
tree``ls``ls``tree
利用
tree
和的組合grep
可以得到你想要的:$ tree -F . ├── file1.txt ├── file5.txt ├── parent_dir1/ │ ├── child_dir/ │ ├── file2.txt │ └── file3.txt └── parent_dir2/ └── child_dir2/ └── file4.txt 4 directories, 4 files $ tree -FL 1 | grep -v /$ . ├── file1.txt ├── file5.txt 2 directories, 1 file
‘F’ 標誌導致
tree
將’/’ 附加到目錄,‘v’ 標誌grep
反轉給定模式,它匹配所有以’/’ 結尾的行。您會注意到,即使實際上沒有顯示目錄,即使最後的摘要仍然適用。
一旦你向下一層以上,樹結構就會占主導地位,事情就會變得有點奇怪。
$ tree -FL 3 | grep -v /$ . ├── file1.txt ├── file5.txt │ ├── file2.txt │ └── file3.txt └── file4.txt 4 directories, 4 files
編輯
此外,如果這種損壞的樹輸出讓您感到困擾(即某些文件以 ‘├─’ 字元而不是 ‘└─’ 字元開頭,並且多級版本似乎落後了…… ),您可以通過首先對輸出進行排序來解決此問題,目錄。
$ tree --dirsfirst -FL 1 | grep -v /$ . ├── file1.txt └── file5.txt 2 directories, 1 file $ tree --dirsfirst -FL 3 | grep -v /$ . │ ├── file2.txt │ └── file3.txt │ └── file4.txt ├── file1.txt └── file5.txt 4 directories, 5 files
我認為這實際上也使無節點樹結構更具可讀性。