Я хочу заархивировать подкаталог и отправить его в другое место, проблема в том, что когда я использую команду zip, она также включает все нежелательные слои каталогов, которые мне не нужны.
e.g.
zip -r /new.zip /Unwanted1/Unwanted2/wanted1/wanted2/file.txt
###unzipped produces the following
/Unwanted1/Unwanted2/wanted1/wanted2/file.txt
###I want
/wanted1/wanted2/file.txt
update: каталог, который я хочу заархивировать, имеет множество вложенных каталогов, поэтому -r. Также было бы здорово иметь дело с абсолютными путями, старое решение использовало cd о месте, но мне это не очень нравилось. Возможно, это лучший (единственный) способ.
-r
означает рекурсивный. Если вам действительно нужно это использовать, вам следует прочитать о параметрах почтового индекса для исключения. Если вы просто хотите заархивировать один файл, перейдите в соответствующий родительский каталог (в вашем примере) ./Unwanted1/Unwanted2, а затемzip new.zip wanted/file.txt
. То есть я не думаю, что есть опция zip, которая означает «отбросить первые n слоев информации о подкаталоге во входном имени файла». Удачи. - person shellter   schedule 18.11.2011