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

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

Рассматривать:

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

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

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

2 ответа

Решение

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

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

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

Другие вопросы по тегам