LINUX.ORG.RU
ФорумAdmin

tar + bz распаковать только содержимое архива


0

1

Есть папка:

some_dir/aaa/bbb/ccc/
покуется так:
tar cjpf /home/user/some_dir.tar.bz2 /home/user/.../.../.../some_dir

если распакуем: ~%tar xjpf /home/user/some_dir.tar.bz2, то получим путь /home/user/home/user/.../.../.../some_dir. А мне надо, чтобы aaa bbb ccc сразу лежали в ~ т.е без полного пути. Как это сделать ?

Раньше делал --strip-components х, где х кол-во вложений. Но сейчас такой вариант меня не устраивает, мне надо тупо от всех папок избавиться т.е мне нужно распаковать содержимое архива в dst папку без полных путей.

★★★★

Честно говоря, не знаю, как сделать с помощью tar.
Но могу предложить

7z e tarball.tar

proud_anon ★★★★★
()

а вариант после распаковки сделать так?

find $unp_dir -type f -print -exec cp $some_other_dir {} \;
demidrol ★★★★★
()

man tar
--strip-components=NUMBER
strip NUMBER leading components from file names on extraction


а, черт, не дочитал. ;) чем стрип компонентс-то не устраивает?

aol ★★★★★
()
Последнее исправление: aol (всего исправлений: 1)

вон, еще есть:

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

думаю, можно попробовать удалять им всё до последнего слеша, тогда всё распакуется в один каталог

aol ★★★★★
()
Ответ на: комментарий от aol

Как я понял, вложенные директории разной глубины, а все файлы надо сложить в одну директорию.

Т.о. вариант от demidrol'а, с распаковкой и переносом файлов, является максимально эффективным, только cp заменить на mv.

sdio ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.