linux -- 查找(find)命令 一
find:
find命令是非常有用的linux命令,我们可以用它来根据指定的搜索条件来搜索整个文件系统来查找文件或目录。
基本的‘find file’命令
find . -name "foo.txt" -print //'.'表示在当前目录下查找,‘-name’表示查找文件名。意思我在当前目录下查找文件名为foo.txt,并把查找结果打印出来。其中‘-print’为默认表达式,可省略。
find / -name "*.txt" // '/'表示根目录,‘*’为通配符,‘*.txt’表示文件格式为txt的文件或目录。
多目录查找
find /web1 /web2 /web3 -name foo.html //在web1, web2, web3的目录下搜索文件名为foo.html的文件或目录
不区分大小写搜索
find . -iname foo -type d //'-type d'表示只搜索目录(dirs)不搜索文件。所以整个表示在当前目录下搜索目录名转换成小写为‘foo’的所有目录
多个扩展名搜索
find home/page -type f \( -name "web*" -o -name "*.c" \)
//'-type f'表示只搜索文件名(file)。\(\)对()进行转义。‘-o’表示‘or’,
-name "web*" -o -name "*.c"表示文件名为web开头的文件或者.c文件。 home/page表示查找目录。
搜索不包含指定名
find . -not -name '*.html' //'-not'表示不包含搜索条件的其他文件或目录。 所以这句就表示搜索不包含名称后五位为‘.html’的文件或目录
find+grep通过text来搜索文件
find . -type f -name '*.html' -exec grep -l 'function load' {} \; //搜索包含
function load字符,并且是html文件
find + chmod 搜索文件并修改权限
find /user -name '*.html' -type f -exec chmod 644 {} \; //搜索/user目录下的html文件,并将其权限修改为 -rw-r--r--(644)
find + copy
find . -type f -name '*.mp3' -exec cp {} /tmp/MusicFiles \; //将当前目录的mp3文件copy到/tmp/MusicFiles目录下
find + delete
find . -type f -name 'foo*' -exec rm {} \; //删除当前目录下以foo开头的文件