Невозможно распаковать конкретный tar в его собственный DIR

Создайте именованный канал и позвольте вашей программе C читать из него:

$ mkfifo input
$./prog <input

В другом сеансе оболочки:

$ echo Stop >/path/to/input
0
21.03.2021, 10:56
1 ответ

tar -xизвлечет содержимое файла *.tar.*в текущий рабочий каталог... Точка. При этом, вот что это значит, и как мы можем обойти это, чтобы получить желаемое поведение.

Обычно каталог архивируется. Значение кто-то написал:

tar -czf tarball.tar.gz somedirectory

В этом случае, если вы tar -xэто сделаете, содержимое будет извлечено в somedirectory. Однако это только по соглашению. Кто-то вполне может сжать архив с:

tar -czf tarball.tar.gz file1 file2 file3

В этом случае, когда вы tar -x, вы получите file1, file2и file3в текущем каталоге.


В этой ситуации, если вы хотите сохранить извлеченные файлы в изолированном каталоге, вам следует:

mkdir tarball && cd tarball && tar -xzf../tarball.tar.gz

Чтобы понять, следует ли вам tar -xили mkdir _ & cd _ & tar -x../_, вы можете использовать tar --list -f tarball.tar.gz.Это перечислит содержимое tar-архива перед его извлечением, чтобы вы могли решить, хотите ли вы распаковать его в pwd, как -, или создать новый каталог и извлечь его оттуда.

1
28.04.2021, 22:58

Теги

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