2013-03-03 2 views
17

Я новичок в команде tar. У меня есть много файлов в каталоге: 1_1_1.txt, 1_1_2.txt, 2_1_1.txt, 2_1_2.txt ..Как tar набор файлов?

Я знаю, что есть команда:

tar cf file.tar *.txt 

который будет tar все четыре файла в file.tar. Но мне нужно tar 1_1_1.txt и 1_1_2.txt в один файл tar и 2_1_1.txt и 2_1_2.txt в другой файл tar. Как это сделать?

+4

Ну, вы пытались это? –

+0

вы используете петлю, если в именах файлов есть шаблон. N lotsof создаваемые файлы –

+2

tar xzf будет извлекать tarball. вы имеете в виду tar czf, который создаст gzipped tarball: .tar.gz, cf создаст .tar – iain

ответ

25

Чтобы просто создать архив этих файлов я бы просто сделать:

tar cf ones.tar 1_*.txt 
tar cf twos.tar 2_*.txt 

Скорее всего, вы хотите сжать тарболы, так что используйте z вариант:

tar czf ones.tar.gz 1_*.txt 
tar czf twos.tar.gz 2_*.txt 

Просмотреть содержимое ваших тарболлов с tar tf <tarball>.

+0

Спасибо. Это то, что мне нужно. –

2

Попробуйте это:

find . -maxdepth 1 -name "*.txt" -exec tar -rf test.tar {} \;

Если вы хотите включить все файлы, включая вложенные папки, удалить "-maxdepth 1"

вы можете использовать шаблоны, как "1_1 * .txt"

4

Вы можете просто использовать следующие команды

tar cf file1.tar 1_1_1.txt 1_1_2.txt 

tar cf file2.tar 2_1_1.txt 2_1_2.txt 
Смежные вопросы