linux 学习笔记4 find
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux 学习笔记4 find相关的知识,希望对你有一定的参考价值。
find
-type
文件类型:常用f普通文件,d目录文件,
-name
最常用的选项,要么单独使用该选项,要么和其他选项一起使用。可以使用某种文件名模式来匹配文件,记住要用引号将文件名模式引起来。不管当前路径是什么,如果想要在自己的根目录$HOME中查找文件名符合*.log的文件,使用~作为 ‘pathname‘参数,波浪号~代表了你的$HOME目录。
find ~ -name "*.log" -print
[[email protected] ~]$ find ~ -name *.log
/home/srd/.imsettings.log
/home/srd/.local/share/gvfs-metadata/computer:-a70bf00a.log
/home/srd/.local/share/gvfs-metadata/label-CentOS_6.4_Final-10158b6b.log
/home/srd/.local/share/gvfs-metadata/home-b5544f17.log
/home/srd/cc/Python-3.5.0/build/temp.linux-x86_64-3.5/libffi/config.log
/home/srd/cc/Python-3.5.0/config.log
/home/srd/cc/redis-3.0.5/deps/jemalloc/config.log
想要在当前目录及子目录中查找所有的‘ *.log‘文件,可以用:find . -name "*.log" -print
[[email protected] ~]$ find . -name *.log
./.imsettings.log
./.local/share/gvfs-metadata/computer:-a70bf00a.log
./.local/share/gvfs-metadata/label-CentOS_6.4_Final-10158b6b.log
./.local/share/gvfs-metadata/home-b5544f17.log
./cc/Python-3.5.0/build/temp.linux-x86_64-3.5/libffi/config.log
./cc/Python-3.5.0/config.log
./cc/redis-3.0.5/deps/jemalloc/config.log
perm按照文件权限模式用-perm选项,按文件权限模式来查找文件的话。最好使用八进制的权限表示法。
如在当前目录下查找文件权限位为777的文件,即文件属主可以读、写、执行,其他用户可以读、写、执行的文件,可以用:
[[email protected] ~]$ find . -perm 777
./.pulse/eae9e860c9ec8073634e4ecc0000003f-runtime
./cc/Python-3.5.0/build/temp.linux-x86_64-3.5/libffi/include/ffitarget.h
./cc/Python-3.5.0/build/temp.linux-x86_64-3.5/libffi/include/ffi_common.h
[[email protected] ~]$
user和nouser选项:按文件属主查找文件,使用group和nogroup选项用法一样
实例1:在根目录中查找文件属主为123的文件
[[email protected] /]# find / -user 123
/usr/123
/usr/123/.gnome2
/usr/123/.bashrc
/usr/123/.mozilla
/usr/123/.mozilla/extensions
/usr/123/.mozilla/plugins
/usr/123/.bash_profile
/usr/123/.bash_logout
实例3:为了查找属主帐户已经被删除的文件,可以使用-nouser选项。在/home目录下查找所有的这类文件
[[email protected] /]# find / -nouser
这样就能够找到那些属主在/etc/passwd文件中没有有效帐户的文件。在使用-nouser选项时,不必给出用户名; find命令能够为你完成相应的工作。
-mtime 按照更改时间或访问时间等查找文件:如果希望按照更改时间来查找文件,可以使用mtime,atime或ctime选项。如果系统突然没有可用空间了,很有可能某一个文件的长度在此期间增长迅速,这时就可以用mtime选项来查找这样的文件。 用减号-来限定更改时间在距今n日以内的文件,而用加号+来限定更改时间在距今n日以前的文件。希望在系统根目录下查找更改时间在5日以内的文件,可以用:
[[email protected] /]# find / -mtime +9 9天以前的文件
[[email protected] /]# find / -mtime -5 5天以内的文件
[[email protected] /]# find / -name passwd -print 查找跟目录下passwd文件,并打印在终端(print可以省略)
/etc/pam.d/passwd
/etc/passwd
/usr/bin/passwd
/selinux/class/passwd
/selinux/class/passwd/perms/passwd
[[email protected] /]# find /var/log -type f -mtime +5 查找/var/log 最后修改日期是5天以前的
/var/log/maillog-20160124
/var/log/messages-20160103
/var/log/dracut.log-20160101
/var/log/maillog-20160110
/var/log/yum.log
/var/log/maillog-20160103
/var/log/mysqld.log
/var/log/anaconda.program.log
/var/log/spooler-20160124
/var/log/secure-20160110
/var/log/secure-20160103
/var/log/cron-20160117
/var/log/pm-powersave.log
/var/log/Xorg.9.log
/var/log/anaconda.log
/var/log/wpa_supplicant.log
[[email protected] /]# find /var/log -type f -mtime +5 -exec chown -R srd:srd {} \;
查找/var/log 最后修改日期是5天以前的 ,并将文件所有者改成srd:srd
[[email protected] /]# cd var/log
[[email protected] log]# ll
total 1704
-rw-------. 1 srd srd 2368 Dec 31 14:04 anaconda.ifcfg.log
-rw-------. 1 srd srd 20626 Dec 31 14:04 anaconda.log
-rw-------. 1 srd srd 44877 Dec 31 14:04 anaconda.program.log
-rw-------. 1 srd srd 115558 Dec 31 14:04 anaconda.storage.log
-rw-------. 1 srd srd 50364 Dec 31 14:04 anaconda.syslog
-rw-------. 1 srd srd 60867 Dec 31 14:04 anaconda.xlog
-rw-------. 1 srd srd 115227 Dec 31 14:04 anaconda.yum.log
drwxr-x---. 2 root root 4096 Jun 22 2012 audit
-rw-r--r--. 1 srd srd 2546 Dec 31 14:10 boot.log
[[email protected] /]# find /etc/services -type f -print | xargs grep "passwd"
在/etc/services 下面找passwd文件,并显示
将find指令输出信息传递给xargs,xargs分批次处理
kpasswd 464/tcp kpwd # Kerberos "passwd"
kpasswd 464/udp kpwd # Kerberos "passwd"
passwd_server 752/udp qrh # Kerberos passwd server
rpasswd 774/tcp #
[[email protected] /]#
不用print也是一样的作用
[[email protected] /]# find /etc/services -type f | xargs grep "passwd"
kpasswd 464/tcp kpwd # Kerberos "passwd"
kpasswd 464/udp kpwd # Kerberos "passwd"
passwd_server 752/udp qrh # Kerberos passwd server
rpasswd 774/tcp
以上是关于linux 学习笔记4 find的主要内容,如果未能解决你的问题,请参考以下文章