동일한 폴더에 동일한 이름을 가진 파일이 포함된 두 개의 zip 파일 추출을 처리하는 방법

동일한 폴더에 동일한 이름을 가진 파일이 포함된 두 개의 zip 파일 추출을 처리하는 방법

for루프를 사용하여 여러 파일의 압축을 풀고 있습니다 .

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

두 개의 zip 파일의 압축을 풀 때 두 zip에 동일한 이름의 파일이 있는 경우 두 파일을 동일한 폴더에 있는 동일한 이름의 단일 파일로 연결하고 싶습니다.

어떻게 하나요?

답변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/

관련 정보