乐趣区

关于linux:Linux进阶-查找文件

3.17 查找文件

locate: 疾速查找

查找指定文件

# 查看名为 restart.sh 的文件
locate restart.sh
# /usr/local/qcloud/stargate/admin/restart.sh

查找指定目录下以某个字符串结尾的文件

# 例如,查找 `/root/.ssh` 目录下以 "id_rsa" 结尾的所有文件
locate /root/.ssh/id_rsa
# /root/.ssh/id_rsa
# /root/.ssh/id_rsa.pub

利用正则表达式查找指定模式的文件

# 应用 - r 选项查找以 "sh" 结尾的文件或目录
locate -r sh$

find 命令

依据文件名查找

# 咱们应用 `-name` 参数指定了文件名
find -name "new_file"

依据文件大小查找

# 查找 /var/log 目录下大于 10m 的文件,-10m 就是小于 10m。find /var/log -size +10M

依据文件最近拜访工夫查找

# 查找近 7 天内拜访的文件
find -name "*.txt" -atime -7

依据文件类型查找
d: dir
f: file

# 查找目录
find . -name "new_file" -type d

高级搜寻

# 查找的后果依据固定格局打印输出
# %p:文件名
# %u:文件所有者
find . -name "*.txt" -printf "%p - %u\n"

exec 调用命令

应用 exec 参数能够后接一个命令,对每个查找到的文件进行操作
exec 是 execute 的缩写,是执行的意思

# 如果要将 one 目录下所有查找到的 txt 文件的拜访权限都改为 600
find one -name "*.txt" -exec chmod 600 {} \
退出移动版