Как смонтировать набор файлов?

18

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

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

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. Как я могу это сделать?

    
задан Li' 03.03.2013 в 20:52
источник
  • Ну, вы попробовали? –  Frédéric Hamidi 03.03.2013 в 20:54
  • вы используете цикл, если в именах файлов есть шаблон n файлов lsosof, которые должны быть созданы –  Travis G 03.03.2013 в 20:58
  • tar xzf извлечет архив. вы имеете в виду tar czf, который создаст gzipped tarball: .tar.gz, cf создаст .tar –  iain 03.03.2013 в 20:58
  • Я не пробовал. К сожалению, я имею в виду tar czf для создания файла tar. Привет Трэвис, как использовать петлю? –  Li' 03.03.2013 в 21:02

3 ответа

26

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

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

Скорее всего, вы хотите сжать tarballs, поэтому используйте опцию z :

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

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

    
ответ дан user1019830 03.03.2013 в 21:57
  • Спасибо. Это то, что мне нужно. –  Li' 04.03.2013 в 02:38
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
    
ответ дан Aromal 19.01.2017 в 17:28
2

Попробуйте следующее:

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

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

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

    
ответ дан iwanek 03.03.2013 в 21:23