Как мне создать архив tar, который не будет расширяться до подпапок? - PullRequest
3 голосов
/ 14 октября 2011

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

Рассмотрим:

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

Если я cd в archives и создаю там свою смолу, например: 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.

Ответы [ 2 ]

4 голосов
/ 17 октября 2011

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

cd data/site
tar -czf ../../archives/archive.tgz *
1 голос
/ 14 августа 2013

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

...