ランダムなディレクトリパスを選択するスクリプトを実行したいと思いました。
find / -type d | shuf -n1
残念ながら、特定のディレクトリに入ることの禁止に関するエラーメッセージが表示されます。
findでディレクトリを検索から除外するにはどうすればよいですか?
ランダムなディレクトリパスを選択するスクリプトを実行したいと思いました。
find / -type d | shuf -n1
残念ながら、特定のディレクトリに入ることの禁止に関するエラーメッセージが表示されます。
findでディレクトリを検索から除外するにはどうすればよいですか?
回答:
Linuxで特定のパスを除外するには:
find / -path /sys -prune -o -path /proc -prune -o -type d
別のアプローチは、find
異なるファイルシステムで再帰しないように指示することです。
find / -xdev -type d
ライブシステムの代わりに、locateを使用してファイル名のデータベースをクエリすることもできます(通常は毎晩更新され、手動で更新することもできますupdatedb
)。
locate '*' | shuf -n 1
find / -xdev -type d 2>/dev/null
。
find / \( -path /sys -o -path /proc \) -prune -o -type d
あなたはより多くのようなdirsに除外したい場合でしょうが便利/dev
か/tmp
、などを
GNU findでは、たとえば次のような正規表現オプションを使用することもできます。
find / -regextype posix-extended -regex "/(sys|srv|proc)" -prune -o -type d