find 是最常见最强大的查找命令,可找到任何想找的文件
$ find <目录> <条件> <动作>
$ find path -option [ -print][-exec -ok command] {}\;
find . -name 'my*' -ls # 当前目录所有以 my 开头的文件
find . -type -f -mmin -10 # 10分钟内更新过的普通文件(-type f)
find ~ -mtime -7 # 查找主目录一周内修改的文件
find ~ -mtime +1 -mtime -7 # 查找修改时间超过1天,不超过1周的文件
# -type: d 目录; f 文件; l 链接; s 套接字; p 命名管道; b 块设备;
find /usr -maxdepth 2 -iname "*xml" | wc -l
# -maxdepth 最大深度
# -mindepth 最小深度
find . -name runme -exec rm {}\; # 任何名为 runme 的文件都会被立即删除
find . -name runme -ok rm {} \; #查找明为 runme 的文件提示后 y 确认删除
find . -type f -perm 644 -exec ls -l {} \;# 查找当前目录中文件属主有读写权限,且文件属组用户和其它用户有读权限的文件
locate 其实是 find -name
的另一种写法
locate /etc/sh # etc 下以 sh 开头的文件
locate ~/m # 主目录下 m 开头的文件
类似的查找命令还有: which type
找到root用户的文件全部改成www-data用户的
#!/bin/bash
# find . -user root -group root -exec chown 1000:1000 {} \;
# find . -user root -group root -exec chown www-data:www-data {} \;
# find . -user root -group root | xargs chown 1000:1000
find . -user root -group root | xargs chown www-data:www-data
# find . -user root -exec chown www-data {} \;
# 更快的权限设置
# chownspeed www-data /var/www
function chownspeed() {
#find /var/www -not -user www-data -execdir chown www-data {} \+
find "$2" -not -user "$1" -execdir chown "$1" {} \+
}