04_系统管理习题记录
04.系统管理课后习题详细解释
文件查找相关作业
1. 查找 /tmp 目录下,属主不是 root,且文件名不以 f 开头的文件
find /tmp ! -user root ! -name "f*"
2. 查找 /var 目录下属主为 root,且属组为 mail 的所有文件
find /var -user root -group mail
3. 查找 /var 目录下不属于 root、lp、gdm 的所有文件
find /var ! -user root ! -user lp ! -user gdm
4. 查找 /var 目录下最近一周内其内容修改过,同时属主不为 root,也不是 postfix 的文件
find /var -mtime -7 ! -user root ! -user postfix
5. 查找 /etc 目录下大于 1M 且类型为普通文件的所有文件
find /etc -type f -size +1M
文件操作作业
6. 将 /etc/ 中的所有目录(仅目录)复制到 /tmp 下,目录结构不变
cp -r /etc/* /tmp/
或者更精确的方式:
find /etc -type d -exec cp -p {} /tmp/ \;
-p:保留源文件或目录的属性;
7. 将 /etc 目录复制到 /var/tmp/,/var/tmp/etc 的所有目录权限 777,/var/tmp/etc 目录中所有文件权限 666
# 复制目录
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 天的日志文件,其他全部删除
find /var/log -type f -mtime +7 -exec rm -f {} \;
使用场景: 日志文件定期清理时使用。
输出结果: 删除超过 7 天的日志文件,保留最近 7 天的文件。
9. 创建 touch file{1..10} 10 个文件,保留 file9,其他一次全部删除
# 创建文件
touch file{1..10}
# 删除除 file9 外的所有文件
find . -type f ! -name "file9" -exec rm -f {} \;
或者使用:
rm -f file!(9)
使用场景: 批量创建测试文件后清理时使用。
命令解释
10. 解释如下每条命令含义
1. mkdir /root/dir1
含义: 创建目录 /root/dir1
2. touch /root/dir1/file{1..10}
含义: 在 /root/dir1/ 下创建 file1 到 file10 的文件。
使用场景: 批量创建空文件时使用。
3. find /root/dir1 -type f -name "file5"
含义: 查找 /root/dir1/ 目录下名为 file5 的普通文件。
使用场景: 精确查找特定文件时使用。
输出结果: 如果找到,输出文件路径。
4. find /root/dir1 ! -name "file5"
含义: 查找 /root/dir1/ 目录下所有不名为 file5 的文件和目录。
使用场景: 排除特定文件名时使用。
5. find /root/dir1 -name "file5" -o -name "file9"
含义: 查找 /root/dir1/ 目录下名为 file5 或 file9 的文件或目录。
-o 是或者的意思
-a 是而且的意思
-not 是相反的意思
使用场景: 查找多个特定名称的项目时使用。
输出结果: 列出符合条件的项目。
6. find /root/dir1 -name "file5" -o -name "file9" -ls
含义: 查找 /root/dir1/ 目录下名为 file5 或 file9 的文件或目录,并显示详细信息。
(-name "file5") -o (-name "file9" -ls)
7. find /root/dir1 \( -name "file5" -o -name "file9" \) -ls
含义: 同上,但使用括号分组条件,使逻辑更清晰。
#括号的作用是明确逻辑优先级,确保 -o 的作用范围是括号内的所有条件
((-name "file5") -o (-name "file9")) -ls
8. find /root/dir1 \( -name "file5" -o -name "file9" \) -exec rm -rvf {} \;
-f, --force 强制删除。忽略不存在的文件,不提示确认
-r, -R, --recursive 递归删除目录及其内容
-v, --verbose 详细显示进行的步骤
含义: 查找 /root/dir1/ 目录下名为 file5 或 file9 的文件或目录,并删除它们。
9. find /root/dir1 ! \( -name "file4" -o -name "file8" \) -exec rm -vf {} \;
含义: 查找 /root/dir1/ 目录下不名为 file4 和 file8 的文件或目录,并删除它们。。

浙公网安备 33010602011771号