shell脚本--文件查找之find命令
2018-01-20 22:13
453 查看
首先是通过文件名称来查找,需要使用一个-name参数。
查询以 .txt结尾的文件,和以 t 开头的文件:
其中 ./ 表示当前目录,后面还可以跟上一些简单的正则表达式,如下面的例子,注意此时正则表达式需要使用引号括起来。
可以通过权限值来查找,此时要使用-perm 参数
还可以通过文件类型来查找,使用-type参数,其中f表示文件,d表示目录
可以根据文件创建者查找,使用-user参数
可以根据文件更改时间来查找,使用-mtime参数。
根据文件大小来查找,使用-size参数。注意如果要是用文件区间,则每一个文件大小的前面都要加上-size参数,和mtime类似。还要注意的是,1兆字节使用1M,不要使用1m
find的这些参数是可以配合使用的,还可以使用xargs命令配合使用,将结果作为xargs后面命令的输入。
查询以 .txt结尾的文件,和以 t 开头的文件:
ubuntu@ubuntu:~/test$ ls one.txt three.txt two.txt ubuntu@ubuntu:~/test$ find ./ -name '*.txt' ./two.txt ./one.txt ./three.txt ubuntu@ubuntu:~/test$ find ./ -name 't*' ./two.txt ./three.txt
其中 ./ 表示当前目录,后面还可以跟上一些简单的正则表达式,如下面的例子,注意此时正则表达式需要使用引号括起来。
ubuntu@ubuntu:~/test$ touch 123.txt ubuntu@ubuntu:~/test$ find ./ -name '[a-z]'* #以一个字母开头的文件 ./two.txt ./one.txt ./three.txt ubuntu@ubuntu:~/test$ find ./ -name '[1-9]'* #以一个数字1-9开头的文件 ./123.txt ubuntu@ubuntu:~/test$
可以通过权限值来查找,此时要使用-perm 参数
ubuntu@ubuntu:~/test$ ls -l total 0 -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 one.txt -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt ubuntu@ubuntu:~/test$ chmod 777 one.txt ubuntu@ubuntu:~/test$ find -perm 777 ./one.txt ubuntu@ubuntu:~/test$ find -perm 664 ./two.txt ./three.txt ./123.txt ubuntu@ubuntu:~/test$
还可以通过文件类型来查找,使用-type参数,其中f表示文件,d表示目录
ubuntu@ubuntu:~/test$ mkdir dirOne ubuntu@ubuntu:~/test$ ls -l total 4 -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt drwxrwxr-x 2 ubuntu ubuntu 4096 1月 20 21:37 dirOne -rwxrwxrwx 1 ubuntu ubuntu 0 1月 20 21:18 one.txt -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt ubuntu@ubuntu:~/test$ find ./ -type f ./two.txt ./one.txt ./three.txt ./123.txt ubuntu@ubuntu:~/test$ find ./ -type d ./ ./dirOne ubuntu@ubuntu:~/test$
可以根据文件创建者查找,使用-user参数
ubuntu@ubuntu:~/test$ ls -l total 4 -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt drwxrwxr-x 2 ubuntu ubuntu 4096 1月 20 21:37 dirOne -rwxrwxrwx 1 ubuntu ubuntu 0 1月 20 21:18 one.txt -rw-r--r-- 1 root root 0 1月 20 21:42 RootTouch -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt ubuntu@ubuntu:~/test$ find -user root ./RootTouch ubuntu@ubuntu:~/test$ find -user ubuntu . ./two.txt ./one.txt ./three.txt ./123.txt ./dirOne ubuntu@ubuntu:~/test$
可以根据文件更改时间来查找,使用-mtime参数。
find ./ -mtime -5 #查找当前目录下,5天以内更改过的文件或者目录 find ./ -mtime +3 #查找当前目录下,最后一次更改时间在3天以前的文件
根据文件大小来查找,使用-size参数。注意如果要是用文件区间,则每一个文件大小的前面都要加上-size参数,和mtime类似。还要注意的是,1兆字节使用1M,不要使用1m
ubuntu@ubuntu:~/test$ ls -l total 8 -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:24 123.txt drwxrwxr-x 2 ubuntu ubuntu 4096 1月 20 21:37 dirOne -rwxrwxrwx 1 ubuntu ubuntu 15 1月 20 22:01 one.txt -rw-r--r-- 1 root root 0 1月 20 21:42 RootTouch -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 three.txt -rw-rw-r-- 1 ubuntu ubuntu 0 1月 20 21:18 two.txt ubuntu@ubuntu:~/test$ find ./ -size -10c #小于10字节的文件 ./two.txt ./RootTouch ./three.txt ./123.txt ubuntu@ubuntu:~/test$ find ./ -size +10c -size -20c #小于20字节,大于10字节的文件 ./one.txt ubuntu@ubuntu:~/test$
find的这些参数是可以配合使用的,还可以使用xargs命令配合使用,将结果作为xargs后面命令的输入。
相关文章推荐
- shell脚本中if与case使用,查找文件locate与find的使用,压缩,解压及归档工具
- shell 文件查找命令find
- Linux shell: 文件查找命令find,xargs详述 转载
- 【Linux Shell脚本攻略之一】find命令:文件查找和文件列表
- 续写vim,shell脚本基础编辑,read命令,if与case判断语句,文件查找方式,压缩与解压,
- [Shell]使用find命令查找最近修改过的文件
- shell学习:文件查找与打印文件列表命令find
- shell学习:文件查找与打印文件列表命令find
- BASH命令和SHELL脚本总结(18)使用ACK在指定类型的文件中进行查找
- [Shell]使用find命令查找最近修改过的文件
- SHELL学习之一《Linux文件查找命令find,xargs详述》(转)
- shell 脚本攻略-find 文件查找总结
- Linux文件查找命令find,xargs详述
- Linux文件查找命令find,xargs详述
- shell脚本:cp某个目录下筛选(find)后的某些文件到另一个目录
- linux下find(文件查找)命令的用法总结
- find命令查找到不到软链接内的文件
- Linux查找含有某字符串的所有文件,grep和find命令
- shell脚本实现:每周 5 使用 tar 命令备份/var/log 下的所有日志文件
- Linux文件查找命令find,xargs详述