Как разблокировать файл, пропуская начало структуры каталогов?

Я создал tarархивы с абсолютным путем для сохранения файлов.

/home/mydir/dir1/dir2/dir3/file1.dat /home/mydir/dir1/dir2/dir3/file2.dat /home/mydir/dir1/dir2/dir3/file3.dat 

Я хотел бы разорвать эти архивы, пропуская ведущую часть пути /home/mydir/dir1 . Мои файлы должны быть восстановлены в любом каталоге с такой структурой:

 dir2/dir3/file1.dat dir2/dir3/file2.dat dir2/dir3/file3.dat 

Как я могу сделать это с помощью команды tar или другим способом?

2 Solutions collect form web for “Как разблокировать файл, пропуская начало структуры каталогов?”

Если вы используете GNU tar, тогда есть возможность удалить некоторые ведущие элементы пути при извлечении:

  `--strip-components=number' Strip given number of leading components from file names before extraction. For example, suppose you have archived whole `/usr' hierarchy to a tar archive named `usr.tar'. Among other files, this archive contains `usr/include/stdlib.h', which you wish to extract to the current working directory. To do so, you type: $ tar -xf usr.tar --strip=2 usr/include/stdlib.h 

(Из документации GNU tar .)

В вашем случае, --strip=3 следует применять.

С GNU tar (на встроенных Linux и Cygwin) вы можете применить замену регулярных выражений к путям при добавлении членов в архив или при извлечении их с --transform опции --transform .

 tar -xf foo.tar --transform='s!^/home/mydir/dir1/!!' 

С * BSD tar (в том числе на OSX) есть аналогичный вариант, называемый -s .

 tar -xf foo.tar -s '!^/home/mydir/dir1/!!' 

POSIX имеет команду pax с той же опцией, что и BSD tar.

 pax -r <foo.tar -s '!^/home/mydir/dir1/!!' 
  • busybox tar или разделить большой файл на несколько файлов меньшего размера
  • Шифрование и сжатие
  • Скопируйте скользящие «последние 2 месяца» файлов
  • Найти файлы с тем же именем, но с разными расширениями, отправить в tgz
  • tar через сеанс ssh
  • tar: Удаление имени `/ 'из имен участников
  • Установить уровень сжатия LZMA через tar
  • tar конкретных файлов в нескольких разных подкаталогах
  • tar с -C не работает
  • archivemount (tar) возвращается до завершения записи (синхронизация при записи?)
  • Как удалить tar-установленный Node.js из CentOS 7?
  • Является ли архивирование всей файловой системы из корня эффективной стратегией резервного копирования?
  • Interesting Posts
    Linux и Unix - лучшая ОС в мире.