Назад | Перейти на главную страницу

Как рекурсивно исключить папку по имени при создании tar-архива?

Я знаю, что можно исключить конкретную папку с помощью такой команды:

tar --exclude='/srv/www/project/node_modules' -zcvf /backup/project.tgz .

Мой вопрос, как исключить все папки с именем node_modules в пределах всего /srv/www?

Использовать \( ! -name node_modules \) чтобы исключить это имя каталога из вывода find.

В -print0 option печатает полное имя файла, за которым следует пустой символ. Это следует использовать в случае имен файлов, содержащих символы новой строки.

Смола -null опция включает следующие -T возможность дословного чтения файлов с нулевым символом в конце.

Смола -T - опция читает файлы из stdin (вывод из канала).

find . -type d \( ! -name node_modules \) -print0 | tar --null -czf /backup/project.tgz -T -