在我们使用Linux过程中,查找各种文件,代码的活动占据很大比重,所以此文专门对查找方法做个总结和罗列。主要分为三大块:
- 查找文件
- 查找代码
- 查找命令
查找文件
一般情况下,最基本的查找命令就是find命令。find很强大,基本可以满足日常查找文件的需求,他可以递归得在某一目录下按照某种方式去找到符合条件的文件,下面几个例子基本cover了大多数场景:
- 从当前目录开始找到所有名字为src的目录
# Find all directories named src
find . -name src -type d
- 找到所有的路径只不过一个叫test目录的python文件
# Find all python files that have a folder named test in their path
find . -path '*/test/*.py' -type f
- 找到所有修改时间是一天前的文件
# Find all files modified in the last day
find . -mtime -1
- 找到所有文件大小在500k和10M之间的tar.gz压缩文件
# Find all zip files with size in range 500k to 10M
find . -size +500k -size -10M -name '*.tar.gz'
find命令除了列出符合条件的文件,还能对其进行一些操作,例子如下:
- 找到当前目录下所有的后缀名为tmp的文件,并且删除它们。
# Delete all files with .tmp extension
find . -name '*.tmp' -exec rm {} \;
- 找到所有PNG图片,并且将他们转换为jpg文件。
# Find all PNG files and convert them to JPG
find . -name '*.png' -exec convert {} {}.jpg \;
我们可以看出来:-exec
参数后面就是对结果文件列表所做的操作,那个大括号{}
就代表前面find命令找到的文件列表。