Как мне создать архив tar, который не будет расширяться до вложенной папки?

#unix #tar #directory-structure #archive-tar

#unix #tar #структура каталогов #архив-tar

Вопрос:

Я не хочу создавать «плоский» архив, у которого нет внутренней структуры каталогов. Но я хочу, чтобы файлы верхнего уровня были «свободными», а не отражали структуру каталогов, в которой они были изначально.

Рассмотрим:

   archives
|
  data
    |
      site
        |
          file1.html
        |
          subdirectory
               |
                 etc...
  

Если я cd войду archives и создам там свой tar, например: tar -czf archive.tgz ../data/site/* когда я позже извлеку архив, он будет воссоздан data/site/... заново, и тогда мне придется mv data/site/* ../some/other/dir .

Я хотел бы иметь возможность просто tar -xzf archive.tgz -C ../some/other/dir и иметь, например file1.html будь прямо там , внутри ../some/other/dir .

Ответ №1:

Вместо cd того, чтобы archives вводить и запускать tar там путь к содержимому tarfile, вы должны cd указать, где находится содержимое, и указать путь к tarfile, который вы создаете:

 cd data/site
tar -czf ../../archives/archive.tgz *
  

Ответ №2:

Вы также можете использовать эту опцию tar -czf archive.tgz --directory=data/site/ . , не заходя в папку