создание zip - игнорировать структуру каталогов



Мне нужно создать zip с помощью команды



zip /dir/to/file/newZip /data/to/zip/data.txt


это работает, но созданный zip-файл создает структуру каталогов, имитирующую каталог в файл raw. Это много дополнительных папок, которые мне не нужны.



Я не нашел ответа в беглом взгляде на man-страницу или охоту google.

663   6  

6 ответов:

можно использовать -j.

-j
--junk-paths
          Store just the name of a saved file (junk the path), and do  not
          store  directory names. By default, zip will store the full path
          (relative to the current directory).

использовать :

   -j     Store  just the name of a saved file (junk the path), and do not
          store directory names. By default, zip will store the full  path
          (relative to the current path).

используя -j не будет работать вместе с .
Так что обходной путь для него может быть такой:

cd path/to/parent/dir/;
zip -r complete/path/to/name.zip ./* ;
cd -;

или встроенная версия

cd path/to/parent/dir/ && zip -r complete/path/to/name.zip ./* && cd -

вы можете направить вывод в /dev/null если вы не хотите, чтобы cd - выход, чтобы появиться на экране

несколько связано - я искал решение, чтобы сделать то же самое для каталогов. К сожалению, опция-j не работает для этого : (

здесь хорошее решение о том, как это сделать: https://superuser.com/questions/119649/avoid-unwanted-path-in-zip-file

кроме того, вы можете создать временную символическую ссылку на ваш файл:

ln -s /data/to/zip/data.txt data.txt
zip /dir/to/file/newZip !$
rm !$

это работает также для каталога.

просто используйте параметр-jrm для удаления файла и каталога структуры

zip -jrm /path/to/file.zip /path/to/file

Comments

    Ничего не найдено.