linux查找find命令使用详解

which

which 查找命令的位置,

which 可执行文件的名称

[root@localhost ~]# which pwd
/bin/pwd
cd bash内建命令,找不到


whereis

whereis 命令是定位可执行文件,源代码文件,帮助文件在文件系统的位置

[root@localhost ~]# whereis svn
svn: /usr/bin/svn /usr/share/man/man1/svn.1.gz
[root@localhost ~]# whereis tomcat
tomcat:        #tomcat没有安装,所以没有


find

find命令是在目录结构中搜素文件的,并可以执行操作,find功能很强大,所以选项也是很多

find pathname -options [-print -exec -ok ...]

参数

pathname 查找的路径
-print 将匹配的文件标准输出
-exec find查找匹配的文件执行该参数给出的shell命令 ‘command’ { } \;注意{}和\;之间有空格
-ok 和-exec作用相同,在执行命令的时候,给出提示,让用户来确定执行

选项

-name 按照名字查找
-perm 按照文件权限查找
-user 按照文件属主查找文件
-group 按照属组来查找文件
-mtime -n +n 按照文件更改时间查找,-n 表示文件更改距现在n天内的,+n表示现在n天前

-type 文件类型

b 设备文件
d 目录
c 字符设备文件
p 管道文件
l 符号文件
f 普通文件
-amin n 系统最后N分钟访问的文件
-atime n 系统最后n*24小时访问的文件
-cmin n 查找系统最后N分钟改变文件状态的文件
-ctime n 查找系统最后M*24小时被改变文件状态的文件
-mmin n 查找系统最后N分钟改变数据的文件
-mtime 查找系统中最后N*24小时改变的数据文件
[root@localhost ~]# find ./  -path "sh/shanghai" -prune -o -print(排除某个文件)
[root@localhost ~]# find -atime -2        (查找2天内访问的文件)
[root@localhost ~]# find . -name "*.log"    (查找所有log结尾的文件)
[root@localhost ~]# find . -perm 777        (查看权限777的文件)
[root@localhost ~]# find -type f -name "*.txt"    (查看所有txt结尾的文件)
[root@localhost ~]# find -type d -name "install"    (查看install目录)
[root@localhost ~]# find . -size +10000c -print    (查看字节10000的文件)


find 命令之exec

find命名,查找到文件后要删除或者shell命令操作,exec就显现出来了

find . -type f -exec ls -l {} \;

{} 表示前面查找到的文件

删除东西的时候需要确认下

find . -name "*.log" -mtime +5 -ok rm {} \;        (会提示输入y,让你删除)
find /etc -name "passwd*" -exec grep "root" \;  (查找/etc/下所有的passwd文件,并查看文件root行)
find . -name "*.log" -exec mv {} /root/sh \;   (移动目录下log结尾的移动到/root/sh里面去)
find . -name "*.log" -exec cp {} /root/sh \;    (拷贝目录下log结尾的移动到/root/sh里面去)


find 命令之xargs

解决exec命令长度限制,不会造成参数溢出

[root@localhost ~]# find . -type f -print | xargs file    查看文件的类型
[root@localhost ~]# find /etc/ -name "sshd_config" -print | xargs cat"" | grep "Port" >> ssh.log        查看sshd_config 里面的Port信息
[root@localhost ~]# find . -perm -7 -print | xargs chmod o-w  查看当前文件下权限7的文件o-w
[root@localhost ~]# find . -type f -name "*.txt" | xargs -i mv {} shanghai  查看txt结尾的文件移动到shanghai文件里面


你可能感兴趣的:(linux,command,用户,find,执行文件)