- find –maxdepth -mindepth 结合tree来精确查找最大和最小目录搜索深度
- 在当前目录下建立三个文件夹,互为父子关系
mkdir -p a/b/c
- 分别在a,b,c三个文件夹下随机建立三个文件,最终的结果如下:
[root@CentOS6 findtest#]tree
└── a
├── b
│ ├── c
│ │ ├── f7.log
│ │ ├── f8.log
│ │ └── f9.log
│ ├── f4
│ ├── f5
│ └── f6
├── f1.txt
├── f2.txt
└── f3.txt
3 directories, 9 files
从tree显示中,a目录是第一级,b目录以及a目录下的三个文件f1.txt,f2.txt,f3.txt为第二级,c目录和b目录下的三个文件f4,f5,f6为第三级,c目录下的三个文件f7.log,f8.log,f9.log为第四级。
- find –maxdepth 3:结果能查到除c目录下三个文件之外的所有文件及文件夹
./a
./a/f2.txt
./a/f1.txt
./a/b
./a/b/f4
./a/b/f6
./a/b/c
./a/b/f5
./a/f3.txt
- find -maxdepth 3 -mindepth 2:结果能查到第二级和第三级包含的所有文件及文件夹
./a/f2.txt
./a/f1.txt
./a/b
./a/b/f4
./a/b/f6
./a/b/c
./a/b/f5
./a/f3.txt
- find -maxdepth 3 -mindepth 3:结果只能查到第三级包含的所有文件及文件夹
./a/b/f4
./a/b/f6
./a/b/c
./a/b/f5
- find size 结合图
如图所示:
find -size n的范围:n-1 < file <= n
find -size -n的范围:0 <= file <= n-1
find -size +n的范围:n< file < 无穷大
测试:
- 创建两个文件,分别为1023,1024byte
dd if=/dev/zero of=/data/filesizetest/f1 bs=1 count=1024
dd if=/dev/zero of=/data/filesizetest/f2 bs=1 count=1023
- 搜索条件 find /data/filesizetest/ -size 1k
/data/filesizetest/f2
/data/filesizetest/f1
- 搜索条件 find /data/filesizetest/ -size 1024c
/data/filesizetest/f1
- 搜索条件find /data/filesizetest/ -size -1024c
/data/filesizetest/f2
- 搜索条件find /data/filesizetest/ -size -1k
结果为空
- 搜索条件find /data/filesizetest/ -size +1k
结果为空
同理,find当查找条件为时间戳时,即find -atime, find -mtime, find -ctime时,也存在和以文件大小为查找条件时,只是算法有不同,以天为单位:
find -aime 1,表示查找 <= 1天 atime < 2 天的文件
find -atime +1,表示查找 2天 <= atime 天的文件
find -atime -1,表示查找 atime < 1天的文件
- 批量打包用法
打包工具tar配合-T -X选项可以同时实现批量打包并且选择要排除的文件列表(包括目录和文件)
-T 指定输入文件
-X 指定包含要排除的文件列表
需求:同时打包/etc /var两个目录并表排除/etc/sane.d/目录下的文件
步骤:
- 创建includefilelist,内容为
/etc/
/var/
- 创建excludefilelist,内容为
/etc/sane.d
- tar zcvf mybackup.tar -T includefilelist -X excludefilelist
- tar -tf mybackup.tar,包括了/etc/ /var两个目录,同时排除了/etc/sane.d/的文件及目录
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/96223