temp
名前は。すべてのファイルを見つける必要がありますか?find . -name "temp"
では、エラーメッセージが表示されないことを確認する必要がありますか2>/dev/null
?前のコマンドの最後に追加できますか?
答え1
注文する
find . -name temp
すべて見つける名前それはtemp
。これには、通常のファイル、ディレクトリ、ソケット、シンボリックリンクなどのさまざまなファイルが含まれます。
ただ探したいなら定期的なファイルを作成したら、次のように-type f
テストします。
find . -name temp -type f
エラーを隠すには、次のように発生します(アクセスできないディレクトリにアクセスしようとすると)。
find . -name temp -type f 2>/dev/null
つまり、標準エラーストリームを(すべてのエラー削除)find
にリダイレクトします。/dev/null
エラーを避けたい場合、つまり隠れるエラーが発生した場合は、アクセス権のないディレクトリに入力しないように注意してください。 GNUの場合はfind
便利です。
find . -type d ! \( -readable -executable \) -prune -o -name temp -type f -print
このテストはすべてのディレクトリに適用され、GNUの場合、-type d
現在のパス名が現在のユーザーが実行または読めないことを参照している場合は、find
否定テストが適用されます。-executable -readable
ディレクトリはアクセシビリティ実行可能でディレクトリの内容を一覧表示できる(読み取り可能な場合)、検索ツリーでディレクトリを「クリーンアップ」します-prune
。つまり、find
入力しないでください。
これは-o
論理OR演算です。使用しない場合、-o
デフォルト-a
は「AND」です。指定されたテストとタスクは左から右に評価されます。
最後に、-print
すべてのテストに合格したすべてのパス名を印刷します。
あなたはしたいですか?する見つかったファイルに対していくつかの操作を実行してから、それを実行してこれを実行しますfind
。たとえば、それを削除するには、-delete
コマンドの最後に追加または-print
に変更します-delete
。より一般的なタスクを実行するには、そのタスクを繰り返す必要があります。あなたは以下を使ってこれを行います。
find . -type d ! \( -readable -executable \) -prune -o -name temp -type f \
-exec sh -c '
for pathname do
# code that uses "$pathname" goes here
done' sh {} +
また、見ることができます