这是我试图存档的文件夹的目录结构:
DIR结构
HOME
HOME/.abc
HOME/FIRST
HOME/FIRST/.def
Run Code Online (Sandbox Code Playgroud)
我正在使用simlpe $PATCH/zip -r -l -x "bac*" abc.zip HOME/*
我观察到的一个有趣的事情是它直接在HOME下跳过隐藏文件夹,它在FIRST下拉链.我在这里错过了什么?这是我选择的选项的副作用吗?请提前帮助谢谢.
*不是由zip实用程序解释,而是由shell扩展.在执行zip实用程序之前,*将替换为所有非隐藏文件或目录的空格分隔列表.
您可以通过替换证明这一点$PATCH/zip跟echo,这将表明,实际上传递给程序,壳的mangling后的参数.
如果设置环境变量GLOBIGNORE来.:..,不仅会打坏禁用的匹配.和..,它也自动启用"dotglob",其中其他隐藏的文件相匹配,而不需要对不错的效果.*,所以你可以用*一切.
例如,这应该可以解决您的问题:
GLOBIGNORE=.:..; $PATCH/zip -r -l -x "bac*" abc.zip HOME/*; unset GLOBIGNORE
Run Code Online (Sandbox Code Playgroud)
请注意,您无法通过简短的方式或在一个命令中执行此操作:
GLOBIGNORE=.:.. $PATCH/zip -r -l -x "bac*" abc.zip HOME/*
Run Code Online (Sandbox Code Playgroud)
似乎bash在下一个命令之前没有注意到这一点.
| 归档时间: |
|
| 查看次数: |
5404 次 |
| 最近记录: |