Как изменить имя файла при добавлении файла в файл tar

Для меня много раз, если я набираю reboot, он не позволит мне из-за ингибиторов из Chrome при просмотре YouTube и других открытых вкладок. Поэтому я вынужден использовать sudo reboot - больший молот.

Это в Ubuntu 16.04

1
задан 21 February 2018 в 19:33

3 ответа

Причиной является tar, автоматически удаляющий ведущий /:

tar: Удаление ведущего `/ 'из имен участников

Кажется, он удаляется перед выполнением регулярного выражения. Поэтому вам нужно также удалить ведущий / в шаблоне:

tar --transform='flags=r;s|root/myFolder/B/foo|bar|' -cf archive.tar /root/myFolder/B/foo

или использовать переключатель -P

 -P, --absolute-names
       don't strip leading '/'s from file names

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

tar --transform='flags=r;s|foo|bar|' -cf archive.tar -C /root/myFolder/B/ foo
3
ответ дан 22 May 2018 в 12:58
  • 1
    Спасибо. Параметр RoVo -C работает отлично. – nilesh_101 21 February 2018 в 20:46
  • 2
    @ nilesh_101, если ответ вам помог, пожалуйста, подумайте о его принятии – steeldriver 22 February 2018 в 04:10

Причиной является tar, автоматически удаляющий ведущий /:

tar: Удаление ведущего `/ 'из имен участников

Кажется, он удаляется перед выполнением регулярного выражения. Поэтому вам нужно также удалить ведущий / в шаблоне:

tar --transform='flags=r;s|root/myFolder/B/foo|bar|' -cf archive.tar /root/myFolder/B/foo

или использовать переключатель -P

-P, --absolute-names don't strip leading '/'s from file names

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

tar --transform='flags=r;s|foo|bar|' -cf archive.tar -C /root/myFolder/B/ foo
3
ответ дан 17 July 2018 в 20:17

Причиной является tar, автоматически удаляющий ведущий /:

tar: Удаление ведущего `/ 'из имен участников

Кажется, он удаляется перед выполнением регулярного выражения. Поэтому вам нужно также удалить ведущий / в шаблоне:

tar --transform='flags=r;s|root/myFolder/B/foo|bar|' -cf archive.tar /root/myFolder/B/foo

или использовать переключатель -P

-P, --absolute-names don't strip leading '/'s from file names

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

tar --transform='flags=r;s|foo|bar|' -cf archive.tar -C /root/myFolder/B/ foo
3
ответ дан 23 July 2018 в 21:00

Другие вопросы по тегам:

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