特定の種類ではないファイルを見つける方法は?

特定の種類ではないファイルを見つける方法は?

整理されていない音楽フォルダ内のさまざまな種類のファイルをすべて識別しようとしています。私は次のコマンドを試しました(私が知っているファイル形式以外のファイル形式を一覧表示)。

find zUnorganized/ -not -iname "*.mp3" -and -not -iname "*.flac" -and -not -iname "*.MP3" -and -not -iname "*.wav" -or -not -iname "*.m4a" -and -not -iname "*.jpg"

しかし、これはうまくいきません。このコマンドはどのように機能しますか? -regexを使用してこれを行う方法はありますか?

ありがとうございます!

答え1

あなたは次のように書いています(明確にするために重複する括弧を追加しました):

find zUnorganized/ \( -not -iname "*.mp3" -and -not -iname "*.flac" -and -not -iname "*.MP3" -and -not -iname "*.wav" \) \
               -or \( -not -iname "*.m4a" -and -not -iname "*.jpg" \)

-and -not全文を使用するか、or全文と末尾を使用し-printます(つまり、これで何もせず、そうでなければこれで何もせず、そうでなければ印刷します)。また、検索を通常のファイルに制限する必要があります。それ以外の場合は、ディレクトリが一覧表示されます。

find zUnorganized/ -type f -not -iname "*.mp3" -and -not -iname "*.flac" -and -not -iname "*.MP3" -and -not -iname "*.wav" -and -not -iname "*.m4a" -and -not -iname "*.jpg"
find zUnorganized/ \! -type f -o \
                   -iname "*.mp3" -o -iname "*.flac" -o -iname "*.MP3" -o -iname "*.wav" -o -iname "*.m4a" -o -iname "*.jpg" -o \
                   -print

関連情報