我有一个看起来像这样的目录结构:只有创造bash脚本的zip压缩文件时包括子目录
basedir/dir1/dir2/dir3/dir4/myzip/subdirs
我愿与所有子目录创建的myzip目录的存档,但不包括DIR1到压缩文件中的dir4,并将生成的压缩文件myzip.zip保存在basedir中。
这并不为DIR1至4下班包含在存档
cd basedir
zip -r myzip.zip dir1/dir2/dir3/dir4/myzip
我知道我能做到这样
cd basedir/dir1/dir2/dir3/dir4
zip -r ../../../../myzip.zip myzip
cd ../../../..
# Need to go back to basedir for next commands
这也适用
cd basedir
cp -r dir1/dir2/dir3/dir4/myzip myzip
zip -r myzip.zip myzip
rm -rf myzip
# Kind of annoying to have to copy then remove
有没有更好的方法来做到这一点?我希望我可以添加一些参数给我输入的第一个命令,使其按照我想要的方式工作。
难道大多数人都不想做什么?海事组织他们应该只在zip命令中包含默认的子目录。
我不明白目前实现拉链的点,因为所有这些做一样的事情:
zip -r myzip.zip dir1/dir2/dir3/dir4/myzip
zip -r myzip.zip dir1/dir2/dir3/dir4
zip -r myzip.zip dir1/dir2/dir3/
zip -r myzip.zip dir1/dir2/
zip -r myzip.zip dir1/
那岂不是一直聪明写的zip命令,使其不仅包括子目录默认?
然后,如果你想dir1重新定位dir4包括你可能只是做:
myVersionOfZip -r myzip.zip dir1
如果你想只myzip你会做的子目录:
myVersionOfZip -r myzip.zip dir1/dir2/dir3/dir4/myzip
或者在子外壳里做; '(cd basedir/dir1/dir2/dir3/dir4; zip -r ../../../../myzip.zip myzip)' – tripleee