tarring найти результаты на hp-ux - PullRequest
2 голосов
/ 02 июня 2010
$ find /tmp/a1
/tmp/a1
/tmp/a1/b2
/tmp/a1/b1
/tmp/a1/b1/x1

просто пытается

find /tmp/a1 -exec tar -cvf dirall.tar {} \;

просто не работает

любая помощь

Ответы [ 4 ]

3 голосов
/ 02 июня 2010

Команда, указанная для -exec, запускается один раз для каждого найденного файла.Таким образом, вы воссоздаете dirall.tar при каждом запуске команды.Вместо этого вы должны передать вывод команды find в tar.

find /tmp/a1 -print0 | tar --null -T- -cvf dirall.tar

Обратите внимание, что если вы просто используете find, чтобы получить список всех файлов в /tmp/a1 и не выполняете никаких действийфильтруя, гораздо проще использовать tar -cvf dirall.tar /tmp/a1.

1 голос
/ 02 июня 2010

Вы на расстоянии одного персонажа от решения.Параметр find команды *1001* выполнит команду для каждого найденного файла , поэтому вы должны заменить -c на -r, чтобы перевести tar в режим добавления.Каждый раз, когда find вызывает его, он прикрепляет еще один файл:

rm -f dirall.tar
find /tmp/a1 -exec tar -rvf dirall.tar {} \;
0 голосов
/ 02 июня 2010

Есть ли у hpux cpio? Это займет список файлов на стандартный ввод и некоторые версии запишет вывод в формате tar.

0 голосов
/ 02 июня 2010

Я думаю, что что-то вроде "find / tmp / a1 | xargs tar cvf foo.tar" будет работать. Но сначала убедитесь, что у вас есть резервные копии!

...