Обычно я бы сделал что-то вроде:
tar -czf archive.tar.gz *.csv
Но когда в каталоге слишком много файлов, чтобы оболочка могла развернуться в одну строку, это не работает.
В этих случаях я обычно прибегаю к использованию find
. Что-то вроде:
find /path -name '*.csv' -exec tar -rf "./archive.tar.gz" {} +;`
Но, похоже, это работает, только если я не включаю опцию -z
потому что вы не можете добавить к сжатым архивам, и использование -c
вместо -r
перезапишет первый архив, так как find запускает tar несколько раз.
Единственное другое решение, которое я мог бы придумать, - это создать файл .tar с помощью find
(как указано выше), а затем использовать вторую команду для его сжатия. Есть ли лучший способ обработки таких случаев?
Я использую Ubuntu Linux.