Я хотел бы найти быстрый способ сжатия папок через цикл. У меня есть 1000 папок, и каждая папка имеет 40000 файлов (общий размер 3 ГБ).
Вот мой код для этого:
for f in Simulation*/; do
echo "$f" &&
test "$(find "$f" -type f | wc -l)" -eq 40000 &&
find -type f | grep -P '\.csv|\.tiff|\.txt' | tar -czf "${f%/}.tar.gz" "${f%/}" &&
rm -rf "$f"
done
Вот некоторые подробности о коде:
- Шаг 1: найдите полные папки, содержащие 40000 файлов
- Шаг 2: найти файлы с некоторыми расширениями (.csv, .tiff, .txt) в полных папках и сжать их
- Шаг 3: удалить необработанные папки, которые были сжаты
Будем весьма благодарны за любую идею о том, как улучшить мой код.