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

例如,如果我要获取md5checksum路径中所有文件的。

$ find /path/to/ -type f -print0 | xargs -0 md5sum

但是输出还包括备份文件的校验和。通常,有什么方法可以忽略Shell中的备份文件?


手掌心
浏览 306回答 2
2回答

德玛西亚99

只需告诉find将找到的名称限制为不以代字号结尾的名称即可:find /path/to/ -type f ! -name '*~' -exec md5sum {} +这不使用正则表达式(*~是文件名遍历模式)。

largeQ

在Unix shell的上下文中,唯一具有特殊含义的唯一文件名模式是以点开头的名称.。对于默认的shell扩展,通常将这些文件视为“不可见”。不同的应用程序使用不同的名称模式来表示它们认为是“备份文件”~的名称(开头是波浪号,或者是名称,结尾是.backup扩展名,等等)。除非此类应用程序还使用特定的(非标准)文件属性标记此类文件,否则最容易区分它们的方法是通过提供给定类型的备份文件专用的文件名模式或通配符。在您的情况下,find接受文件名模式作为常规参数:-name "*~"
打开App,查看更多内容
随时随地看视频慕课网APP