Linux文件操作中,创建与复制文件夹是基础技能,创建文件夹常用mkdir命令,基本语法为mkdir 目录名,需递归创建多层目录时,添加-p选项(如mkdir -p a/b/c)可自动生成父目录,避免报错,复制文件夹则使用cp命令,必须加-r(递归复制)或-R选项(如cp -r 源目录 目标目录),若需保留原文件权限、时间戳等属性,可搭配-a选项(如cp -a 源目录 目标目录),掌握这些命令能高效管理目录结构,提升文件操作效率。
在Linux系统中,文件和文件夹的管理是日常操作的核心技能之一,无论是系统管理员还是开发者,掌握文件夹的创建与复制方法都能大幅提升工作效率,本文将详细介绍Linux环境下创建新文件夹、复制文件夹的常用命令及其使用技巧,帮助读者快速上手这些基础但重要的操作。
创建新文件夹:mkdir命令详解
创建文件夹是文件管理的第一步,Linux中主要通过mkdir(make directory)命令实现,该命令简单易用,但通过不同选项可以满足复杂场景需求。
基本语法与功能
mkdir命令的基本语法为:

mkdir [选项] 目录名
其核心功能是根据指定的路径创建新文件夹,若路径中包含不存在的父目录,直接使用mkdir会报错,此时需借助-p选项递归创建。
常用选项与示例
(1)创建单个文件夹
最简单的用法是直接指定目录名,例如在当前路径下创建名为mydocs的文件夹:
mkdir mydocs
执行后,通过ls命令即可看到新生成的mydocs目录。
(2)递归创建多级目录
若需创建包含多级层级的目录(如docs/2023/reports),且父目录docs和2023不存在时,需使用-p(parents)选项:
mkdir -p docs/2023/reports
该命令会自动按需创建所有不存在的父目录,避免因父目录缺失导致的报错。
(3)创建带权限的目录
默认情况下,新建目录的权限为755(所有者可读/写/执行,组用户和其他用户可读/执行),若需自定义权限,可通过-m选项指定,例如创建权限为700(仅所有者可访问)的private目录:
mkdir -m 700 private
使用ls -l查看可验证权限设置是否生效。
复制文件夹:cp命令进阶用法
复制文件夹是文件备份、迁移或组织结构的常见操作,与文件复制不同,文件夹的复制需递归处理其内部的所有子目录和文件,Linux中主要通过cp(copy)命令实现。
基本语法与核心选项
cp命令复制文件夹的基本语法为:
cp [选项] 源目录 目标路径
关键选项:
-r或-R(recursive):递归复制目录及其内容,是复制文件夹的“核心选项”;-a(archive):归档模式,相当于-dpR,保留目录的权限、时间戳、所有者等属性,适合备份场景;-v(verbose):显示复制过程,便于调试或确认操作内容;-i(interactive):覆盖前提示确认,避免误操作。
常用复制场景与示例
(1)简单复制文件夹(递归复制)
将source_dir文件夹复制到/home/user/路径下,目标文件夹名与源文件夹一致:
cp -r source_dir /home/user/
执行后,/home/user/下会生成source_dir及其所有子目录和文件的副本。
(2)复制并重命名文件夹
若需在复制时修改目标文件夹名称,只需在目标路径后指定新目录名,例如将old_folder复制到当前路径并重命名为new_folder:
cp -r old_folder new_folder
(3)保留所有属性的复制(归档模式)
在系统备份或迁移时,需保留文件夹的原始权限、时间戳等信息,此时使用-a选项:
cp -a important_config /backup/config_20230815/
该选项能确保复制后的目录与源目录在属性上完全一致,避免因权限丢失导致后续访问问题。
(4)显示复制过程(详细模式)
复制大目录时,可通过-v选项实时查看被复制的文件列表,确认操作是否正常进行:
cp -rv large_data/ backup/
终端会输出类似'large_data/file1.txt' -> 'backup/file1.txt'的提示信息。
(5)避免覆盖:交互式复制
若目标路径已存在同名文件夹,直接复制会覆盖其内容,使用-i选项可在覆盖前提示确认:
cp -ri existing_dir/ backup/
当backup/下已有existing_dir时,终端会提示覆盖 'backup/existing_dir'?,输入y确认,n取消。
注意事项:目标目录存在时的行为
cp命令在复制文件夹时,目标路径的“存在性”会影响最终结果:
- 目标路径不存在:直接创建目标目录,并将源文件夹内容复制到其中(如
cp -r dir1 /tmp/dir2,若/tmp/dir2不存在,则效果等同于复制并重命名为dir2); - 目标路径是已存在的目录:源文件夹会被“复制到”目标目录内部,而非覆盖目标目录。
mkdir target_dir # 先创建目标目录 cp -r source_dir target_dir

