2013-08-01 2 views
10

У меня есть каталог со многими подкаталогами. В некоторых из этих подкаталогов есть файлы с расширением *.asc, а некоторые - с *.xdr.tar/gzip исключая определенные файлы

Я хочу создать SINGLE файл tarball/gzip, который поддерживает структуру каталогов, но исключает все файлы с расширением *.xdr.

Как я могу это сделать?

Я сделал что-то вроде find . -depth -name *.asc -exec gzip -r9 {} +, но этот gzips каждый *.asc файл отдельно, который не является тем, что я хочу сделать.

ответ

23

Вы должны использовать --exclude вариант:

tar -zc -f test.tar.gz --exclude='*.xdr' *

+0

Что такое синтаксис для нескольких файлов? Я пробовал * .xdr, *. Pdf, но не удалось –

+2

Я сделал это, добавив снова --exclude. '--exclude = '*. pdf' --exclude = '*. mp4'' –

1

gzip всегда будет обрабатывать файлы по отдельности. Если вам нужен пакетный архив, вам нужно сначала дешифровать файлы, а затем gzip результат, поэтому в итоге вы получите файл .tar.gz или .tgz.

Чтобы получить лучший контроль над тем, что вы делаете, сначала создайте файлы, используя уже опубликованную команду (с помощью команды -print insted из команды gzip), поместите их в файл и используйте этот файл (= файл. TXT) в uinstruct деготь с тем, что в архив

tar -T filelist.txt -c -v -f myarchive.tar 
+0

Это нормально. Как я могу сделать это с помощью tar? – user1654183

+0

Ну, вы можете взглянуть на 'man tar' !? – user1146332

+0

Я думаю, что-то вроде этого будет работать: tar -cf src.tar --exclude = '*. Xdr' src – user1654183

Смежные вопросы