复制大文件并保留目录结构

LinuxLinuxBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在这个项目中,你将学习如何把大小超过10K的文件从/etc目录复制到/tmp/etc目录,并保留目录结构。这是一项在Linux系统上管理和组织文件的实用技能。

🎯 任务

在这个项目中,你将学习:

  • 如何创建一个基于文件大小来复制文件的脚本
  • 如何使用find命令来定位符合特定条件的文件
  • 如何在复制文件时保留目录结构
  • 如何使用sudo以提升的权限运行脚本

🏆 成果

完成这个项目后,你将能够:

  • 基于文件大小自动执行文件复制过程
  • 在复制文件时维护目录结构
  • 有效地使用find命令来定位符合特定条件的文件
  • 以提升的权限运行脚本以访问受保护的文件和目录

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("`Linux`")) -.-> linux/BasicFileOperationsGroup(["`Basic File Operations`"]) linux(("`Linux`")) -.-> linux/FileandDirectoryManagementGroup(["`File and Directory Management`"]) linux(("`Linux`")) -.-> linux/UserandGroupManagementGroup(["`User and Group Management`"]) linux/BasicFileOperationsGroup -.-> linux/ls("`Content Listing`") linux/BasicFileOperationsGroup -.-> linux/cp("`File Copying`") linux/FileandDirectoryManagementGroup -.-> linux/cd("`Directory Changing`") linux/FileandDirectoryManagementGroup -.-> linux/mkdir("`Directory Creating`") linux/FileandDirectoryManagementGroup -.-> linux/find("`File Searching`") linux/UserandGroupManagementGroup -.-> linux/sudo("`Privilege Granting`") subgraph Lab Skills linux/ls -.-> lab-301465{{"`复制大文件并保留目录结构`"}} linux/cp -.-> lab-301465{{"`复制大文件并保留目录结构`"}} linux/cd -.-> lab-301465{{"`复制大文件并保留目录结构`"}} linux/mkdir -.-> lab-301465{{"`复制大文件并保留目录结构`"}} linux/find -.-> lab-301465{{"`复制大文件并保留目录结构`"}} linux/sudo -.-> lab-301465{{"`复制大文件并保留目录结构`"}} end

创建复制脚本

在这一步中,你将创建一个脚本,用于把大小超过10K的文件从/etc目录复制到/tmp/etc目录。

  1. 使用文本编辑器打开/home/labex/project目录下的copy.sh文件。
  2. 向该文件中添加以下代码:
#!/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 "文件复制完成。"
  1. 保存文件。

在这一步中,你已经创建了copy.sh脚本,它将把大小超过10K的文件从/etc目录复制到/tmp/etc目录,并保留目录结构。

运行复制脚本

在这一步中,你将运行copy.sh脚本来复制文件。

  1. 打开一个终端,并导航到/home/labex/project目录。
  2. 使用以下命令运行脚本:
sudo sh copy.sh

这将以提升的权限运行脚本,使其能够复制labex用户可能没有访问权限的文件。

  1. 等待脚本完成。当脚本完成时,你应该会看到消息“文件复制完成”。

在这一步中,你已经运行了copy.sh脚本,将大小超过10K的文件从/etc目录复制到了/tmp/etc目录。

验证复制的文件

在这一步中,你将验证文件是否已被正确复制。

  1. 打开一个文件管理器并导航到/tmp/etc目录。
  2. 观察目录结构和已复制的文件。你应该会看到目录结构得以保留,并且只复制了大小超过10K的文件。
  3. 你也可以在终端中使用ls -l命令列出/tmp/etc目录中的文件及其大小。

在这一步中,你已经验证了文件已从/etc目录正确复制到/tmp/etc目录。

恭喜!你已成功完成了将大小超过10K的文件从/etc目录复制到/tmp/etc目录并保留目录结构的项目。

✨ 查看解决方案并练习

总结

恭喜!你已完成此项目。你可以在LabEx中练习更多实验以提升你的技能。

您可能感兴趣的其他 Linux 教程