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

Я создал 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/!!' 
  • Как скопировать между двумя удаленными узлами, используя tar, переданные в SSH с удаленного сервера, когда за брандмауэром?
  • Почему «tar -exclude» не использует несколько опций?
  • Просмотр содержимого .tar
  • `tar` с` find` с удалением исходного расширения файла
  • Как перенести папку rootfs?
  • Избегайте содержимого .tar начинать с './'
  • tar: Неожиданный EOF в архиве
  • Заставить владельца и группу для содержимого tar-файла?
  • почему бы вам tar zip-файл
  • Как я могу архивировать папку, в которой владельцы и разрешения остались без изменений?
  • Скопируйте файл из вложенного файла tar.gz
  • Interesting Posts

    Установка отдельных пакетов из Solaris .iso

    Частая связь прерывается с помощью arch-linux

    Можно ли заменить пустые пространства / фон в терминале случайным (но довольно) шаблоном символов ASCII?

    Как запустить сценарий при изменении разрешения?

    Что произойдет, если я обновлю Fedora?

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

    Как проверить, принадлежат ли две директории или файлы одной и той же файловой системе

    Как удалить первые n строк и последнюю строку файла с помощью команд оболочки?

    Установка Ubuntu, как мне ее распознать Crucial RealSSD C300?

    надежная передача файлов через TCP

    Не удалось обновить драйвер NVIDIA

    Как подключиться к беспроводной сети со скрытым SSID с помощью терминала?

    perf не работает над действительно большим процессом

    выполнение 2 скриптов с подключением

    SSHD-клонирование – что-то особенное, чтобы иметь в виду, по сравнению с HDD?

    Linux и Unix - лучшая ОС в мире.