解凍/圧縮ファイルの検索

解凍/圧縮ファイルの検索

圧縮と解凍された同じ名前の重複ファイルを取得する方法は?

以下を使用して初期検索を実行できることを知っていますが、いくつかの重複したファイル用語を入力する方法がわかりません。

find / -iname \*.zip

答え1

現在のディレクトリですべてのファイルを探し、名前は同じですが、ファイル名のサフィックスを持たないファイルが.zipあるかどうかを確認します。.zip

find . -type f -iname '*.zip' -exec sh -c '
    for a do
        n="${a%.zip}"
        [ -e "$n" ] && printf "%s\n" "$n"
    done' sh {} +

ディレクトリには以下が含まれます。

file
file.zip
file2.zip
file3
file3.zip

上記のコマンドは出力されます

./file
./file3

これは.zip、すべてのファイルを見つけ、見つかったすべてのファイルに対して各名前から拡張子を順番に削除し、新しい名前が存在することを確認するショートシェルスクリプトを実行することによって行われます。

または少し短く、

find . -iname '*.zip' -exec sh -c '[ -e "${0%.zip}" ]' {} ';' -print

.zipこれはヘルパーシェルスクリプトも使用しますが、サフィックスなしでファイル名があるかどうかをテストします。サフィックスのない名前がある場合は、zipファイルのパス名が出力されます。

また関連することができます:

関連情報