Есть ли способ установить другую целевую структуру каталогов, чем оригинальная структура каталогов, из которой был создан архив tar, не создавая его вручную?

Например, у меня есть много файлов в структуре каталогов, как это:

~/yyyy/mm/dd/hh/mm/*.*

Организовано, когда файл был получен. Я уже создал архив tar без сохранения структуры каталогов выше для файлов за целый день (у меня есть небольшой скрипт, который циклически обрабатывается каждую минуту каждого часа и добавляется в один архив tar). Я хотел бы указать tar для извлечения архива в структуру каталогов следующим образом:

~/yyyymmdd

Кажется достаточно простым, поскольку я мог бы вручную создать каталог yyyymmdd и просто извлечь в него свой архив, но я передаю этот архив tar в другую систему (которую я не могу контролировать), которая полагается на извлечение этого архива tar в каталог yyyymmdd а структура каталогов yyyy/mm/dd/hh/mm/*.* дает мне прирост производительности, потому что она организована. Также я не могу изменить исходную структуру каталогов или тратить системные ресурсы, создавая желаемую целевую структуру каталогов до создания архива tar.

Есть ли простой способ извлечь архив tar из каталога, в котором он никогда не был?

1 ответ1

0

Если у вас есть эта структура

/home/yyyy/mm/dd/hh/mm/
├── dir1
│   ├── file4
│   └── file5
├── dir2
│   └── file6
├── file1
├── file2
└── file3

и вы хотите эту структуру

/home/yyyymmdd/
├── dir1
│   ├── file4
│   └── file5
├── dir2
│   └── file6
├── file1
├── file2
└── file3

Создайте:

tar -cvf /tmp/archive.tar /home/yyyy/mm/dd/hh/mm/

Выдержка:

tar --strip-components=6 -C /home/yyyymmdd/ -xvf /tmp/archive.tar

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .