find相关练习题

find相关练习题

1.查找/tmp目录下,属主不是root,且文件名不以f开头的文件

1
find /tmp ! -user root ! -name "f*"

2.查找/var目录下属主为root,且属组为mail的所有文件

1
find /var -user root -group mail -type f

3.查找/var目录下不属于root、lp、gdm的所有文件

1
find /var ! -user root ! -user lp ! -user gdm -type f

4.查找/var目录下最近一周内其内容修改过,同时属主不为root,也不是postfix的文件

1
find /var -mtime -7 ! -user root ! -user postfix -type f

5.查找/etc目录下大于1M且类型为普通文件的所有文件

1
find /etc -type f -size +1M

6.将/etc/中的所有目录(仅目录)复制到/tmp下,目录结构不变

1
2
3
rsync -av -f"+ */" -f"- *" /etc/ /tmp/

find /etc -type d -exec mkdir -p /tmp/{} \;

7.将/etc目录复制到/var/tmp/,/var/tmp/etc的所有目录权限777/var/tmp/etc目录中所有文件权限666

1
2
3
cp -r /etc /var/tmp/
find /var/tmp/etc -type d -exec chmod 777 {} \;
find /var/tmp/etc -type f -exec chmod 666 {} \;

8.保留/var/log/下最近7天的日志文件,其他全部删除

1
find /var/log -name "*.log" -mtime +7 -delete

9.创建touch file{1..10}10个文件, 保留file9,其他一次全部删除

1
2
touch file{1..10}
find . -maxdepth 1 -type f -name "file[1-8]" -o -name "file10" -delete

10.解释如下每条命令含义
mkdir /root/dir1
touch /root/dir1/file{1..10}
find /root/dir1 -type f -name “file5”
find /root/dir1 ! -name “file5”
find /root/dir1 -name “file5” -o -name “file9”
find /root/dir1 -name “file5” -o -name “file9” -ls
find /root/dir1 ( -name “file5” -o -name “file9” ) -ls
find /root/dir1 ( -name “file5” -o -name “file9” ) -exec rm -rvf {} ;
find /root/dir1 ! ( -name “file4” -o -name “file8” ) -exec rm -vf {} ;

1
2
3
4
5
6
7
8
9
mkdir /root/dir1                  # 在/root目录下创建名为dir1的目录
touch /root/dir1/file{1..10} # 在/root/dir1目录下创建file1到file10共10个空文件
find /root/dir1 -type f -name "file5" # 查找/root/dir1目录下名为file5的普通文件
find /root/dir1 ! -name "file5" # 查找/root/dir1目录下所有不叫file5的文件和目录
find /root/dir1 -name "file5" -o -name "file9" # 查找名为file5或file9的文件
find /root/dir1 -name "file5" -o -name "file9" -ls # 查找file5或file9并显示详细信息
find /root/dir1 \( -name "file5" -o -name "file9" \) -ls # 同上,加了括号更明确优先级
find /root/dir1 \( -name "file5" -o -name "file9" \) -exec rm -rvf {} \; # 删除file5或file9
find /root/dir1 ! \( -name "file4" -o -name "file8" \) -exec rm -vf {} \; # 删除除了file4和file8外的所有文件