Linux之如何使用find命令
温馨提示:这篇文章已超过907天没有更新,请注意相关的内容是否还可用!
Linux find命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则find命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示。
find :饭的
which,她是从变量里面搜索的PATH
whereis ls
mlocate 命令不存在的话运行一下命令
# yum install mlocate -y
[root@localhost ~]# locate ls 模糊搜索
locate: can not stat () `/var/lib/mlocate/mlocate.db': No such file or directory
他会文件不存在,mlocate.db库文件,每天凌晨4点会自动生成
[root@localhost ~]# updatedb 手动生成后就会出现如图以下
如搜索一个文件
快捷键
ctrl +d 退出终端
ctrl +c 结束当前命令行重新开始
ctrl +u 删除光标之前的东西
ctrl +e 把光标放到最后面
ctrl +a 移到最前面的
find的用法
比如你知道文件名字
# find /etc/ -name "sshd_config"
也可以模糊搜索
find /etc/ -name "sshd*"
搜索出只要目录
find /etc/ -type d -name "sshd*"
搜索出只要文件
find /etc/ -type f -name "sshd*"
l c b s 等等可以搜索类型
stat 2.txt 查看文件的详细信息,三个time
mtime 最近更改的内容的时间
-ctime 最近改动的文件属性
改了文件内容,ctime的时间会跟着变,相反不会
-atime 访问这个文件的时间
find / -type f -mtime -1 //一天以内的 +1 一天以前的的
# find /etc/ -type f -mtime -1 -name "*.conf"
一天以内修改的文件并且包含.conf的文件内容
# find /etc/ -type f -o -mtime -1 -o -name "*.conf"
一天以内修改的文件或者包含.conf的文件内容
如何查找硬链接呢?
# find / -inum 401101 其中401101为iNode
如何找一个小时以内的文件
# find /root/ -type f -mmin -60
{} :表示你列出来的文件
查找一个以内修改的文件并改名
# find /root/ -type f -mmin -60 -exec mv {} {}.bak \;
找一个文件小鱼几k或者大鱼几k的
# find /root -type f -site -10k
有两个{}符号:
第一个{}表示的是前面find /root/ -type f -mmin 120查找出来的文件的总概括:
第二个{}表示的是把他更改成bak时候的前缀了。
比如我要找某个目录下一天以内的文件,并且移到指定目录
# find /root/ -type f -mtime -1 -exec cp -rcv {} /root/123/ \;
是可以复制一份目录到/root/123 目录,但是提示
cp: "/root/123/12.txt.bak" 与"/root/123/12.txt.bak" 为同一文件
他的意思执行的时候先查找root下1天以内修改的文件复制一份到/root/123这个目录,然后在查找下一个一天以内的修改在次执行一次复制?,也就是说你查找的目录里面不要包含你要复制的目标目录,不然他搜到会在执行一次复制命令
文件名后缀
文件是有后缀名的,在linux下并不规范,只是习惯性的比如文本就.txt
可以看看http://blog.csdn.net/haiross/article/details/13509963
切换语言 LANG