介绍
在这个项目中,你将学习如何把大小超过 10K 的文件从/etc目录复制到/tmp/etc目录,并保留目录结构。这是一项在 Linux 系统上管理和组织文件的实用技能。
🎯 任务
在这个项目中,你将学习:
- 如何创建一个基于文件大小来复制文件的脚本
- 如何使用
find命令来定位符合特定条件的文件 - 如何在复制文件时保留目录结构
- 如何使用
sudo以提升的权限运行脚本
🏆 成果
完成这个项目后,你将能够:
- 基于文件大小自动执行文件复制过程
- 在复制文件时维护目录结构
- 有效地使用
find命令来定位符合特定条件的文件 - 以提升的权限运行脚本以访问受保护的文件和目录
创建复制脚本
在这一步中,你将创建一个脚本,用于把大小超过 10K 的文件从/etc目录复制到/tmp/etc目录。
- 使用文本编辑器打开
/home/labex/project目录下的copy.sh文件。 - 向该文件中添加以下代码:
#!/bin/zsh
## 此脚本将大小超过 10K 的文件从源目录复制到目标目录。
## 定义源目录和目标目录
source_dir="/etc"
target_dir="/tmp"
## 如果目标目录不存在,则创建它
mkdir -p "$target_dir"
## 使用 find 命令定位大小超过 10K 的文件,并将它们复制到目标目录
find "$source_dir" -type f -size +10k -exec cp --parents --dereference "{}" "$target_dir" \;
echo "文件复制完成。"
- 保存文件。
在这一步中,你已经创建了copy.sh脚本,它将把大小超过 10K 的文件从/etc目录复制到/tmp/etc目录,并保留目录结构。
运行复制脚本
在这一步中,你将运行copy.sh脚本来复制文件。
- 打开一个终端,并导航到
/home/labex/project目录。 - 使用以下命令运行脚本:
sudo sh copy.sh
这将以提升的权限运行脚本,使其能够复制labex用户可能没有访问权限的文件。
- 等待脚本完成。当脚本完成时,你应该会看到消息“文件复制完成”。
在这一步中,你已经运行了copy.sh脚本,将大小超过 10K 的文件从/etc目录复制到了/tmp/etc目录。
验证已复制的文件
在这一步中,你将验证文件是否已被正确复制。
- 打开一个文件管理器并导航到
/tmp/etc目录。 - 观察目录结构和已复制的文件。你应该会看到目录结构得以保留,并且只复制了大小超过 10K 的文件。
- 你也可以在终端中使用
ls -l命令列出/tmp/etc目录中的文件及其大小。
在这一步中,你已经验证了文件已从/etc目录正确复制到/tmp/etc目录。
恭喜!你已成功完成了将大小超过 10K 的文件从/etc目录复制到/tmp/etc目录并保留目录结构的项目。
总结
恭喜!你已完成此项目。你可以在 LabEx 中练习更多实验以提升你的技能。



