例如,如果我要獲取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條經驗 獲得超8個贊
在Unix shell的上下文中,唯一具有特殊含義的唯一文件名模式是以點開頭的名稱.
。對于默認的shell擴展,通常將這些文件視為“不可見”。
不同的應用程序使用不同的名稱模式來表示它們認為是“備份文件”~
的名稱(開頭是波浪號,或者是名稱,結尾是.backup
擴展名,等等)。除非此類應用程序還使用特定的(非標準)文件屬性標記此類文件,否則最容易區分它們的方法是通過提供給定類型的備份文件專用的文件名模式或通配符。
在您的情況下,find
接受文件名模式作為常規參數:-name "*~"
- 2 回答
- 0 關注
- 376 瀏覽
添加回答
舉報
0/150
提交
取消