під час розпакування за допомогою tar приховуйте повідомлення про помилку: 'tar: Видалення провідних `/' з імен учасників 'для архіву, створеного за допомогою --absolute-names


1

Це не дублікат, інші питання на stackexchange стосуються позбавлення від цього повідомлення під час створення архіву.

Чи можливо, враховуючи архів, який був створений з -Pопцією (з провідним `/ ')?

У мене є архів, створений за допомогою " --absolute-names" ( -Pваріант) - з провідним /.

Я хочу розпакувати його з / stripped (tar робить це за замовчуванням).

Це майже ідеально, але я хочу замовкнути:

tar: Removing leading `/' from member names.

не видаляючи інших повідомлень (тому груба сила у вигляді 2>/dev/nullне є рішенням).

Я знайшов кілька рішень, як заглушити це повідомлення під час створення архіву, але жодного для розпакування. Я знаю про, grep -vале він (а) приховає код помилки від tar (b) додасть власний код помилки, якщо повідомлення про / не буде знято.

Ця ситуація може бути повторена

cd /home/user/tmp
touch a.txt
mateusz@Grisznak:~/Desktop/tmp$ tar --create -P /home/user/tmp > a.tar
mateusz@Grisznak:~/Desktop/tmp$ tar --extract --file=a.tar 

Щоб уникнути проблеми XY: я розпаковую архіви, створені компанією backupgem ( http://backup.github.io/backup/v4/ ).

Відповіді:


1

Це здається, що ви хочете:

tar --extract --xform 's/^\///' --file=a.tar

На сторінці чоловіка:

--transform, --xform EXPRESSION
      use sed replace EXPRESSION to transform file names

Таким чином, він все ще знімає провідну косу рису, але не говорить про це.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.