1
______________ myFolder

Что я могу заменить на _____________, чтобы рекурсивно сжать каждый файл, начиная с myFolder, и заставить gzip перезаписать файл (переименуйте файл gzip в исходное имя файла)?

3 ответа3

4

Вы также можете попробовать

 find myFolder -type f -exec gzip {} \; -exec mv {}.gz {} \;
2

пытаться:

find myFolder -type f -exec gzip {} +
1

Простой, не очень элегантный скрипт bash состоит в том, чтобы просто войти в него, заархивировать их все в цикле и записать обратно (по умолчанию gzip удаляет несжатый файл):

#!/bin/bash
cd myFolder
for f in `find ./ -type f`
do
    gzip $f
    mv $f.gz $f
done

Поместите это в файл с именем «gzip_and_rename.sh», например, chmod -775 и запустите его как ./gzip_and_rename.sh (если он выполняется изнутри самого myFolder, удалите строку "cd myFolder" из сценария).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .