为了账号安全,请及时绑定邮箱和手机立即绑定

除了使用正则表达式外,如何在外壳中忽略或排除备份文件[以〜结尾的文件]?

除了使用正则表达式外,如何在外壳中忽略或排除备份文件[以〜结尾的文件]?

手掌心 2021-04-11 17:14:14
例如,如果我要获取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 {} +

这不使用正则表达式(*~是文件名遍历模式)。


查看完整回答
反对 回复 2021-04-16
?
largeQ

TA贡献2039条经验 获得超7个赞

在Unix shell的上下文中,唯一具有特殊含义的唯一文件名模式是以点开头的名称.。对于默认的shell扩展,通常将这些文件视为“不可见”。

不同的应用程序使用不同的名称模式来表示它们认为是“备份文件”~的名称(开头是波浪号,或者是名称,结尾是.backup扩展名,等等)。除非此类应用程序还使用特定的(非标准)文件属性标记此类文件,否则最容易区分它们的方法是通过提供给定类型的备份文件专用的文件名模式或通配符。

在您的情况下,find接受文件名模式作为常规参数:-name "*~"


查看完整回答
反对 回复 2021-04-16
  • 2 回答
  • 0 关注
  • 334 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信