次のようにすると:
mkdir /tmp/test
sudo mkdir /tmp/test/test2
sudo chmod 700 /tmp/test/test2
cd /tmp/test
find ./ -not -path "*"
私はtest2がパスではなくルールと一致することを確認したいと思います。これにより完全に排除されなければなりません。ただし、ルールに関係なくディレクトリを巡回しようとしたfind: ‘./test2’: Permission denied
ことを意味します。find
sudo でコマンドを実行すると、ディレクトリは表示されません。これは、除外ルールが機能しますが、初期ルート中の検索条件ではなく、初期検索の出力に適用されることを意味します。
時間のかかるネットワークファイルシステムのマウントなど、特定の問題のあるディレクトリを除きながらルートファイルシステムの巡回を実装しようとしているので、全体の実行時間を短縮するためにサブディレクトリを探索せずに直接見てみたいと思います。
この目標をどのように達成できますか?
答え1
問題のディレクトリを「整理」する必要があります。これはfind
、そのディレクトリの内容を処理しないように指示します。
find . -path "*" -prune
もっと現実的に、
$ find . -name test2 -prune
./test2
これはまだtest2
自己処理されますが、入ろうとしないため、エラーは発生しません。