アーカイブのみを含める必要があるサブフォルダが多いフォルダがあり、他のファイル形式があるかどうかを確認したいとします。
私はコマンドを使用できます
ls -l -R /backup --ignore="*.zip" --ignore="*.7z"
これにより必要な情報が表示されますが、各フォルダ名も含まれます。
/backup/2000/Jan:
total 0
/backup/2000/Feb:
total 0
など
無視されたファイルのみを含むフォルダの詳細を除外する方法はありますか?
答え1
アーカイブファイルのみを含める必要があるサブフォルダが多いフォルダがあり、他のファイル形式があることを確認したいと思います。
これは職業ではないようですls
。仕事だと思います。find
。アーカイブ・ファイル・パターンと一致しない一般ファイルのリストを要求します。
find /backup -type f ! -name '*.zip' ! -name '*.7z'
ファイル名と-ls
同じ情報を見たい場合は、最後に追加してください。ls -l
(一部の実装では使用できませんfind
。)
答え2
いくつかの解決策があります。最も簡単な方法は、おそらくシェルの拡張ワイルドカード文字を使用することです。
shopt -s extglob
ls -l **/*!(.zip|.7z)
を使用することもできますfind
。
find /backup -type f ! \( -name "*zip" -o -name "*7z" \)
最初のコマンドは隠しディレクトリを除外しますが、2番目のコマンドは除外します。