由于我的存档需求的具体情况,我对tar.gz可靠的存档不满意,而改用7z。
我使用以下命令执行此操作:
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/*
创建所有内容的档案~/my/folder/
作为~/my/folder.7z
文件。
但是~/my/folder/.hiddenFolder
那时候就不进入存档了。如何解决这个问题?不*
应该返回所有文件和文件夹吗?
如果要单个目录的内容,一个简单的方法是先将其更改为:
cd ~/my/folder
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z .
您所看到的是,该操作*
扩展到不以开头的文件的名称列表.
。这是记录在案的行为,这是为什么名称以a开头的文件.
被认为是隐藏的(主要原因是ls
默认情况下不显示它们)。
没有一种真正方便的便携式方法来列出目录中的所有文件。您可以使用
~/my/folder/..?* ~/my/folder/.[!.]* ~/my/folder/*
但是如果没有文件与其中一种模式匹配,则该模式将保持未扩展状态。在bash中,您可以设置dotglob
选项以避免.
特别处理前导(.
并且..
仍然被排除在比赛之外):
shopt -s dotglob
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/*
在ksh或bash中,如果您设置了extglob
选项(或在zsh中,如果您设置了ksh_glob
选项),则可以编写一个与所有文件匹配的模式,除了.
和..
:
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/@(..?*|.[!.]*|*)
在zsh中,有一种更简单的说法,即.
不能在模式中对其进行特殊处理:
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/*(D)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句