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: Я распаковывать архивы , созданные backup самоцвет (http://backup.github.io/backup/v4/).

1 ответ1

1

Кажется, это делает то, что вы хотите:

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

По справочной странице:

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

Так что он по-прежнему лишает главного слеша, но не говорит об этом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .