圧縮と解凍された同じ名前の重複ファイルを取得する方法は?
以下を使用して初期検索を実行できることを知っていますが、いくつかの重複したファイル用語を入力する方法がわかりません。
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ファイルのパス名が出力されます。
また関連することができます: