Відповіді:
Від man tar
:
-C directory
In c and r mode, this changes the directory before adding the
following files. In x mode, change directories after opening the
archive but before extracting entries from the archive.
тобто tar xC /foo/bar -f /tmp/foo.tar.gz
повинен виконувати роботу. (на FreeBSD, але гугл GNU в основному однаковий у цьому відношенні, див. "Зміна робочого каталогу" в його посібнику )
Виконуємо:
(cd foo/bar ; tar xf /tmp/foo.tar.gz )
зробив би цю роботу.
В основному, це є нерестуванням нової оболонки (круглих дужок), в цій підпакеті змініть каталог на, foo/bar
а потім зніміть файл.
Ви можете змінити на ;
, &&
щоб бути впевненим, що cd
працює добре.
tar -xf ancd.tar.gz my/name/file
ви можете дати ім'я файлу за допомогою ./file
файлу після tar.
tar -xf ancd.tar.gz ./my/name/file
якщо це працює, значить, ви створили дьоготь ./
. використовуйте менше команди для перегляду вмісту дьогтю.
less ...tar.file
Я наткнувся на те, що, здається, схоже питання, і вирішив його.
Проблема полягала у створенні файлу, а не у створеному файлі.
При спробі відстежувати та переносити файл у dir A я вказав шлях до вихідного файлу в команді tar
tar -cvf MyFile.tar /foo/bar/dir/not/needed/path/*
Те, що мені вдалося вирішити, - це
cd /foo/bar/dir/not/needed/
tar -cvf /tmp/MyFile.tar path*
При передачі та витягуванні тарболу створюються необхідні підкаталоги.
tar -xvf MyFile.tar