Как обрабатывать Извлечение двух zip-файлов в одной папке, содержащих файлы с одинаковыми именами

Я использую for цикл для распаковки нескольких файлов:

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

Если при распаковке двух zip-архивов files, в обоих zip есть файл с тем же именем, тогда я хочу объединить эти оба файла в один файл с тем же именем в одной папке.

Как это сделать?

0
05.09.2017, 12:18
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/
0
28.01.2020, 04:40

Теги

Похожие вопросы