find コマンドについて [閉じる]

find コマンドについて [閉じる]

名前付きファイルを検索しようとしていますが、dork名前付きファイルを除外したいと思いますdork.zip。また、ディレクトリ権限のエラーも削除しました。

だから、次のようにコマンドを作成します。

find /  -name "dork*" -and !"zip" 2>&1 | grep -iv "not" 

期待どおりに動作しませんでした。

ベストアンサー1

find / -name 'dork*' ! -name '*.zip'

2つのテストを使用する必要があります-name。 1つは一致用dork*で、もう1つは一致用です*.zip。 2番目は、!見つかった名前が一致しないように反転()する必要があります。テストの間には常に暗黙的なANDがあります。

暗黙的なANDを可視化します。

find / -name 'dork*' -a ! -name '*.zip'

また、非標準のGNU構文を使用します。

find / -name 'dork*' -and -not -name '*.zip'

結果のエラーを無視するには、標準エラーストリームを/dev/null最後にwithにリダイレクトします。2>/dev/null

GNUを使用すると、find読み取れないディレクトリを入力しないように選択できます。

find / \( -type d -not -readable -prune \) -or \
       \( -name 'dork*' -not -name '*.zip' -print \)

おすすめ記事