Files
列出所有沒有給定文件名的文件的目錄
我將如何列出所有沒有給定文件名的文件的目錄?例如給定這棵樹
/ /a README file001 file002 /b README file001 /c file003
我想列出沒有名為的文件的目錄
README
,在本例中為 directory/c
。我該怎麼做?我想不出任何使用 eg 的語法find
。
假設
find
像 GNUfind
這樣的實現接受{}
嵌入到的參數中-exec
:$ find . -type d \! -exec test -e '{}/README' \; -print
或者,沒有問題的嵌入:
$ find . -type d ! -exec sh -c 'test -e "$1"/README' sh {} \; -print
例子
這裡目錄 1/1 到 5/5 有一個 README,其他目錄是空的。
$ tree . |-- 1 | `-- 1 | `-- README |-- 10 | `-- 10 |-- 2 | `-- 2 | `-- README |-- 3 | `-- 3 | `-- README |-- 4 | `-- 4 | `-- README |-- 5 | `-- 5 | `-- README |-- 6 | `-- 6 |-- 7 | `-- 7 |-- 8 | `-- 8 `-- 9 `-- 9
現在,當我們執行這個版本的
find
命令時:$ find . -type d \! -exec test -e '{}/README' \; -print . ./10 ./10/10 ./7 ./7/7 ./9 ./9/9 ./6 ./6/6 ./5 ./8 ./8/8 ./4 ./1 ./3 ./2
參考