0

CACHEDIR.TAGファイルを含むすべてのディレクトリを一覧表示するか、含まれていないすべてのディレクトリを一覧表示する必要があります。これまでのところ、私は思いついた

find ~ -type d -exec test -f {}/CACHEDIR.TAG ';' -print

find ~ -type d -exec test -f {}/CACHEDIR.TAG ';' -prune -o -type d -print

ただし、test -f ...少し面倒で、すべてのディレクトリを呼び出すと非常に遅くなります。たとえば、テスト ディレクトリでは 30 秒以上かかりますが、プレーンfind ~ -type dでは 1 秒もかかりません (すべてがメモリにキャッシュされた後にテストされます)。

より良い/より速い解決策を知っている人はいますか?

4

1 に答える 1

1

次の手順で実行できます。

find ~ -type f -name CACHEDIR.TAG | sed -e 's/.CACHEDIR.TAG$//' a
find ~ -type d > b
grep -v -F -f a -x b
于 2012-11-01T05:34:44.050 に答える