例如,如果我要获取md5checksum路径中所有文件的。$ find /path/to/ -type f -print0 | xargs -0 md5sum但是输出还包括备份文件的校验和。通常,有什么方法可以忽略Shell中的备份文件?
2 回答
德玛西亚99
TA贡献1770条经验 获得超3个赞
只需告诉find
将找到的名称限制为不以代字号结尾的名称即可:
find /path/to/ -type f ! -name '*~' -exec md5sum {} +
这不使用正则表达式(*~
是文件名遍历模式)。
largeQ
TA贡献2039条经验 获得超7个赞
在Unix shell的上下文中,唯一具有特殊含义的唯一文件名模式是以点开头的名称.
。对于默认的shell扩展,通常将这些文件视为“不可见”。
不同的应用程序使用不同的名称模式来表示它们认为是“备份文件”~
的名称(开头是波浪号,或者是名称,结尾是.backup
扩展名,等等)。除非此类应用程序还使用特定的(非标准)文件属性标记此类文件,否则最容易区分它们的方法是通过提供给定类型的备份文件专用的文件名模式或通配符。
在您的情况下,find
接受文件名模式作为常规参数:-name "*~"
- 2 回答
- 0 关注
- 334 浏览
添加回答
举报
0/150
提交
取消