Создание tar-архива без включения родительского каталога, когда файлы хранятся в разных каталогах

Он действительно теряет смысл. grep использует почти те же шаблоны regex, что и bash.

11
06.01.2017, 21:32
3 ответа

Если у вас есть список файлов в файле или вы можете сгенерировать их с помощью команды, вы можете использовать одну команду GNU tar:

tar cf foo.tar -T list-of-files --transform 's:.*/::'

Преобразование по-прежнему сохраняет каталоги, но полностью выравнивает структуру. Итак, вам нужен какой-то способ фильтрации каталогов, следовательно, нужен список файлов.

11
27.01.2020, 19:56

Вы можете использовать -C несколько раз (переход из одного каталога в другой):

tar czvf archive.tar.gz -C /home/martin/cvs/ops/cisco/b s1 s2 -C ../../extreme/b r3 -C ../../j/b r5

Обратите внимание, что каждый - Параметр C интерпретируется относительно текущего каталога в этой точке (или вы можете просто использовать абсолютные пути).

18
27.01.2020, 19:56

Вы можете добавлять файлы в архив один за другим:

tar cf /tmp/archive.tar -C /home/martin/cvs/ops/cisco/b s1
tar rf /tmp/archive.tar -C /home/martin/cvs/ops/cisco/b s2
tar rf /tmp/archive.tar -C /home/martin/cvs/ops/extreme/b r3
tar rf /tmp/archive.tar -C /home/martin/cvs/ops/j/b r5

Вы можете написать сценарий, чтобы упростить задачу: для каждого пути запустите tar rf с базовый каталог в качестве значения параметра -C и базовое имя файла без пути для добавления.

8
27.01.2020, 19:56

Теги

Похожие вопросы