1、忽略某个目录   -prune

 

[root@server1 mnt]# find /mnt/  -name "*.txt" -print

/mnt/6file.txt

/mnt/dir/5file.txt

/mnt/1file.txt

[root@server1 mnt]# find /mnt/ -path "/mnt/dir" -prune -o -name "*.txt" -print

/mnt/6file.txt

/mnt/1file.txt

 

[root@server1 mnt]# find /mnt/ -path "/mnt/dir/" -prune -o -name "*.txt" -print

/mnt/6file.txt

/mnt/dir/5file.txt

/mnt/1file.txt

注:上面的蓝色路径一致,并且红色背景处不能要

2、查找比某个文件新或旧的文件

[root@server1 mnt]# ll

total 7768

-rw-r--r--. 1 root root       0 Feb 22 16:07 6file.txt

-rw-r--r--. 1 root root       0 Feb 23 16:34 7file.txt

-rw-r--r--. 1 root root 7945505 Feb 15 14:38 etc.tar.gz

-rw-r--r--. 1 root root    1730 Feb 15 14:42 file0

-rw-r--r--. 1 root root     725 Feb 15 15:18 file0.gz

[root@server1 mnt]# find . -newer file0 ! -newer 7file.txt -exec ls -l {} \;

-rw-r--r--. 1 root root 0 Feb 22 16:07 ./6file.txt

-rw-r--r--. 1 root root 725 Feb 15 15:18 ./file0.gz

-rw-r--r--. 1 root root 0 Feb 23 16:34 ./7file.txt

如果想使用f i n d命令的这一选项来查找更改时间在两个小时以内的文件,除非有一个现成的文件其更改时间恰好在两个小时以前,否则就没有可用来比较更改时间的文件。为了解决这一问题,可以首先创建一个文件并将其日期和时间戳设置为所需要的时间。这可以用t o u c h命令来实现。
假设现在的时间是2 3 : 4 0,希望查找更改时间在两个小时以内的文件,可以首先创建这样一个文件:
[root@server1 mnt]#touch  -t 02232140 file1
 
一个符合要求的文件已经被创建;这里日期为2月23,而该文件的更改时间是2 1 : 4 0,比现在刚好早两个小时。
现在我们就可以使用f i n d命令的- n e w e r选项在当前目录下查找所有更改时间在两个小时以
内的文件:
[root@server1 mnt]# find . -newer file1 -print