Мой нижеприведенный код должен искать рекурсивные папки, содержащие файлы doc/docx и архивировать только те, которые находятся на их пути. Когда найти в tar дает пустое. tar разбивается, когда Трусливый отказывается создавать пустой архив. Я использую -maxdepth 1, чтобы избежать этого, но не уверен, что это правильное решение. Другая проблема заключается в том, что обработка не работает должным образом. Если notest существует, тогда тест будет проигнорирован. Какие-либо предложения? чувствовать себя также свободно предложить некоторые оптимизации кодаtar и рекурсивное архивирование
for D in $(find . ! -newermt $date1 -ipath "*test*" -or -ipath "*notest*" -iregex ".*\.\(doc\|docx\)" -printf "%h\n" | sort -u)
do :
cd $D && tar --no-recursion --ignore-failed-read -czf archive.tar.zip $(find . -maxdepth 1 -iname "*.doc" -or -iname "*.docx") --remove-files
cd ~
done
Пример
Test
|____ test
| |___ subtest ___ 1.doc
| |___ 2.doc
| |___ 3.pdf
|____ notest ___ 1.doc
|___ 2.docx
Ожидаемое
Test
|___ test
| |___ subtest ___ archive.tar.zip (contains docs)
| |___ 3.pdf
|___ notest ___ archive.tar.zip (contains docs)
Обратите внимание, что '.zip' указывает конкретный тип архива, который вы можете манипулировать с [зип] (HTTP: // WWW. freebsd.org/cgi/man.cgi?query=zip&manpath=FreeBSD+Ports+9.2-RELEASE) и [unzip] (http://www.freebsd.org/cgi/man.cgi?query=unzip&manpath=FreeBSD+Ports + 9.2-RELEASE). Для gzipped tar обычно принято завершать имя файла в '.tar.gz'. – ghoti
Это идея, потому что это облачное хранилище и может открываться различными станциями, работающими под управлением ОС. Поэтому не нужно ограничивать пользователей инструментами. – Odin
Изменение имени файла не изменяет формат файла. Если вы хотите создать zip-архив, вы должны использовать инструмент, который может это сделать. Тар, вероятно, не тот инструмент. Если вы хотите что-то, что работает одинаково для почти всех unix-подобных систем, скорее всего, путь .tar.gz. Если вам нужна совместимость с Windows, ZIP может быть лучшим вариантом. В любом случае, вам нужен правильный инструмент для работы. – ghoti