Tar: исключить определенные расширения в подпапках

286
Shibli

У меня есть папка, которая включает в себя подпапки, которые, в свою очередь, также имеют подпапки. Я старался:

tar --exclude='*.msh' --exclude='*.geo' -czvf cont.gz run-1/* 

сжать все файлы и подпапки в run-1, кроме файлов с расширениями msh и geo. Но tar продолжает добавлять эти файлы. Файлы, которые должны были быть исключены, находятся не в run-1, а в одной из его подпапок, и я не хочу явно указывать расположение. В чем проблема?

Изменить: ниже находится одна из подпапок в run-1. Другие подпапки имеют похожую структуру. Я также согласен с исключением папки msh во всех подпапках.

run-1 |-np-8 |-nmesh-3 |-ncell-1 |-bunch of files |-msh |-bg.msh |-bg.geo 
2
Пожалуйста, не могли бы вы обновить свой вопрос с примером дерева? Укажите, какие файлы вы хотите включить, а какие вы хотите исключить? Attie 5 лет назад 0

1 ответ на вопрос

2
harrymc

Попробуйте использовать исключающий файл, содержащий строки:

*.msh *.geo 

Команда может выглядеть так:

tar -czvf cont.gz -X exclude-files.txt run-1/* 

Вы также можете использовать findкоманду для создания списка исключаемых файлов, но это хорошо работает только для небольшого количества файлов.

Похожие вопросы