Можно ли удалить «на лету» полный путь с помощью tar?

Выполните sudo gedit /etc/init.d/rc.local и измените файл, чтобы он содержал команду service zramswap start. Это должно запустить команду в конце процесса загрузки.

-1
10.04.2018, 14:06
1 ответ

Все эти варианты предполагают, что вы создали архив с исходным путем, хранящимся в самом архиве. Они преобразуют путь при листинге/распаковке архива.

Использование paxс флагом -s:

pax -f archive.tar -s '@.*/@/@' '*.mp3'

Добавьте -rв начале, чтобы извлечь файлы.

С BSDtar:

tar -tf archive.tar -s '@.*/@/@' '*.mp3'

Измените -tна -x, чтобы извлечь файлы.

С GNUtar:

tar -tPf archive.tar --transform 's@.*/@/@' --show-transformed-names --wildcards '*.mp3'

Измените -tна -x, чтобы извлечь файлы.

Замена строки удалит путь, хранящийся в архиве, и заменит его одним /.


Эквивалентная операция для создания архива с файлами, имена путей которых считываются из стандартного ввода (преобразование имен путем замены пути на/):

pax:

pax -w -f archive.tar -s '@.*/@/@'

БСДtar:

tar -c -f archive.tar -s '@.*/@/@'

ГНУtar:

tar -c -f archive.tar --transform='s@.*/@/@' --files-from=-
3
28.01.2020, 05:07

Теги

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