同じフォルダに同じ名前のファイルを含む2つのzipファイル抽出を処理する方法

同じフォルダに同じ名前のファイルを含む2つのzipファイル抽出を処理する方法

forループを使用して複数のファイルを解凍しています。

ls *.zip | for zipfile in *.zip;
do
    unzip "$zipfile"
done

2つのzipファイルを解凍するときに2つのzipに同じ名前のファイルがある場合は、2つのファイルを同じフォルダ内の同じ名前の単一のファイルにリンクしたいと思います。

どうすればいいですか?

答え1

アーカイブにディレクトリがないとします。

GLOBIGNORE=.:..
mkdir tmpdir1 tmpdir2 targetdir
unzip -d tmpdir1 "$zipfile1"
unzip -d tmpdir2 "$zipfile2"
cd tmpdir1
for file in *; do
    if [ -f "../tmpdir2/${file}" ]; then
        cat "$file" "../tmpdir2/${file}" >"../targetdir/${file}"
    else
        mv $file" "../targetdir/"
    fi
done
cd ../tmpdir2
mv * targetdir/

関連情報