LINUX.ORG.RU

Поиск файлов и добавление в архив

 ,


0

1

Добрый день, есть код, который ищет файлы во всех директориях и добавляет в архив. Но он добавляет не только файлы, но и полный путь к этим файлам, как можно это исправить, чтобы он добавлял только файлы в архив или это невозможно сделать ?

find ~ -type f -name "*.txt" -print | xargs -0 tar -czvf "$filename"


Последнее исправление: Gocha (всего исправлений: 1)

Ответ на: комментарий от Gocha
iron@IRON /tmp $ find . -type f -name "*.txt"
./1/1/1.txt
./2/2/2/2.txt
./3/3.txt

iron@IRON /tmp $ find . -type f -name "*.txt" -print | awk -F/ '{system("echo -n `dirname "$0"`"); printf " %s\n",$NF}' | xargs -L 1 bash -c 'cd $0;tar -rvf /tmp/test.tar $1;cd -'
a 1.txt
/tmp
a 2.txt
/tmp
a 3.txt
/tmp

iron@IRON /tmp $ tar -t -f /tmp/test.tar 
1.txt
2.txt
3.txt
iron ★★★★★
()
Ответ на: комментарий от teod0r
❰user❙~❱✔≻ touch file.txt
❰user❙~❱✔≻ tar -rvf archive.tar file.txt
file.txt
❰user❙~❱✔≻ tar -rvf archive.tar file.txt
file.txt
❰user❙~❱✔≻ tar -rvf archive.tar file.txt
file.txt
❰user❙~❱✔≻ tar -tvf archive.tar
-rw-r--r-- user/user         0 2023-05-05 09:06 file.txt
-rw-r--r-- user/user         0 2023-05-05 09:06 file.txt
-rw-r--r-- user/user         0 2023-05-05 09:06 file.txt
❰user❙~❱✔≻ 
theurs ★★
()
Ответ на: комментарий от Dog

rtfm вобще в этом топике не принято? «Забавный» факт указан в описании ключа -u. Распаковка или в ручном режиме (-w) или с ключём --occurrence. Ну, еще где-то существует star, у которого есть --find.

mky ★★★★★
()

Опция --transform='s|^.+/([^/]+)$|\1|x' для tar удалит путь из имен файлов.

Команда xargs может вызвать tar несколько раз, и в итоге останется только архив с файлами из последнего вызова. Вместо xargs лучше использовать опцию -T для tar.

No
()
Ответ на: комментарий от Dog

Как я понимаю, это наследие ленты. Способ «заменить» файл в архиве не переписывая всё. Зачем сделали возможность извлечь из архива любую версию файла мне не понятно.

Интерестно, всякие почтовые антивирусы в курсе про это, или таким способом можно скрыто пересылать любые бинарники...

mky ★★★★★
()