find查找多種文件后綴


find命令最常用的是查找某個文件,如:

find ./ -name "test.txt"

則會在當前目錄及子目錄下查找test.txt文件

更常用的是查找某一類型的文件,如:

find ./ -name "*.txt"

則會在當前目錄及子目錄下查找所有txt文件,但是如果要查找多種文件類型呢?比如某文件夾下面所有.c文件和.h文件,可以這樣做:


find ./ -name "*.[ch]"

這個方法有很大的局限性,只對單個字符結尾的文件有效,因為引號里面的是通配符,所以多個多字符結尾的文件只能用正則表達式來查找:

find ./ -regex ".*\.jpg\|.*\.png"

上面這條命令會查找當前文件夾下面的所有jpg文件和png文件,find默認采用emacs正則,會比較羅嗦,如果采用posix-extended正則會比較簡單,如下:

find ./ -regextype posix-extended -regex ".*\.(jpg|png)"

當然,如果不需要查找大量后綴,最簡單的方式是使用-o選項,優點是比較好記:

find ./ -name "*.jpg" -o -name "*.png"

還有比較低效的方法,查找出所有文件再過濾:

find ./ -type f | egrep "\.(jgp|png|gif)$"


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM