普通人也能看懂的 LINUX 命令 · 03
Linux 文件和文件夹怎么创建、复制与移动?
从 mkdir、touch、cp、mv 开始,学会真正操作文件
使用 Windows 时,新建文件夹、复制文件、修改名称,只需要点击鼠标。
到了 Linux,操作方式变成了输入命令,但背后的逻辑并没有改变:创建、复制、移动和重命名,依然是我们熟悉的那些事情。
上一篇,我们讲了 Linux 的根目录、主目录和路径,也认识了pwd、ls、cd三个命令。
这一篇,我们从“看文件”进入“操作文件”,学习四个最实用的基础命令:
mkdir:创建目录。
touch:创建空文件,或更新时间戳。
cp:复制文件或目录。
mv:移动文件,也可以重命名。
使用命令操作文件之前,第一件事不是急着输入创建命令,而是确认当前所在的位置。
如果位置搞错,你可能会把文件创建到其他目录,或者误以为文件“消失了”。
第一条命令查看当前位置,第二条命令查看当前目录中的内容。
如果你希望在自己的主目录中练习,可以先执行:
初学者建议
在个人主目录里创建一个专门的练习文件夹,不要直接在 /etc、/usr、/var 等系统目录中随意修改文件。
mkdir 是“make directory”的缩写,意思是创建目录。
如果想在当前目录中创建一个名为linux-study的文件夹,可以输入:
执行后,使用 ls 查看:
现在这个目录已经创建完成。进入目录:
再执行 pwd,就能看到当前路径已经发生变化:
pwd /home/xiaoma/linux-study其中 xiaoma 只是示例用户名,你的实际路径会显示自己的用户名。
假设你想创建这样一组层级:
如果 projects 和 java 都还不存在,直接运行下面的命令通常会失败:
原因很简单:系统无法直接在一个不存在的上级目录中创建下级目录。
这时可以加入-p选项:
mkdir -p projects/java/demo它会把缺少的上级目录一起创建出来。
可以把mkdir -p理解为:“如果路上缺少文件夹,就顺手一起建好。”
文件夹有了,接下来创建文件。
输入:
如果note.txt原本不存在,系统会创建一个空文件。
再用 ls 查看:
注意,touch 创建的是空文件,并不会自动写入文字。怎样查看和编辑文件内容,会在后面的文章中单独介绍。
一个容易忽略的细节
如果文件已经存在,touch 通常不会清空原有内容,而是更新文件的时间戳。
touch 后面可以同时跟多个文件名:
touch index.html style.css app.js执行之后,当前目录会出现三个文件:
index.html style.css app.js这里的.html、 .css和.js是常见的网页文件扩展名。
Linux 并不像某些系统那样主要依赖文件扩展名判断文件类型,但使用清晰的扩展名依然有助于人和软件识别文件用途。
cp 是“copy”的缩写,作用是复制文件或目录。
它最基本的结构是:
例如:
cp note.txt note-backup.txt执行之后,原来的 note.txt 还在,同时多出一个副本 note-backup.txt。
原文件:note.txt
新副本:note-backup.txt
这和 Windows 中的“复制、粘贴”是同一类操作。
先创建一个用于存放备份的目录:
然后复制文件:
这条命令的意思是:“把当前目录中的 note.txt 复制到 backup 目录里。”
可以查看目标目录确认:
重要提醒
如果目标位置已经存在同名文件,cp 在许多环境下可能直接覆盖。涉及重要文件时,建议使用cp -i,让系统在覆盖前询问。
如果复制的是目录,而不是单个文件,通常需要使用-r选项:
cp -r projects projects-backup这里的 r 可以理解为“递归”,也就是把目录中的文件、子目录以及更深层的内容一并复制。
可以把目录想象成一个装了很多小盒子的大盒子。cp -r的意思是:不仅复制外面的盒子,还把里面的小盒子和物品一起复制。
如果目标目录已存在,复制结果的层级可能与目标目录不存在时不同。操作前先用 ls 确认目标位置,可以避免把目录复制到意料之外的层级。
mv 是“move”的缩写,用于移动文件或目录。
例如,把 note.txt 移动到 backup 目录:
执行之后,note.txt 会离开原来的位置,出现在 backup 目录里。
cp:原文件通常还在,目标位置多出一个副本。
mv:原位置不再保留这个文件,文件被移动到新位置。
注意同名文件
如果 backup 里已经有一个 note.txt,直接移动可能覆盖原文件。更稳妥的写法是mv -i note.txt backup/,让系统先询问是否覆盖。
对 Linux 来说,重命名也可以理解成一种特殊的移动:文件没有换目录,只是从旧名字“移动”到了新名字。
例如:
mv old-name.txt new-name.txt执行之后,old-name.txt 不再存在,文件改名为 new-name.txt。
目录也可以用同样的方式重命名:
这条命令会把 backup 目录改名为 archive,前提是目标 archive 不存在;如果目标已经是一个目录,实际结果可能变成把 backup 移进去。
假设你想创建一个名为“学习资料”的目录:
中文文件名一般可以正常使用。但如果名字里包含空格,例如 My Files,就要告诉系统这是一个完整名称:
mkdir "My Files" touch "My Files/study note.txt"双引号会把带空格的路径当成一个整体,而不是拆成多个参数。
更省心的命名习惯
初学阶段可以优先使用小写字母、数字、短横线和下划线,例如 linux-study、project_demo、notes-2026,减少空格和特殊字符带来的困扰。
操作文件时,初学者最常见的错误主要有三种。
No such file or directory
文件或目录不存在。检查当前路径、名称拼写和大小写。
File exists
目标已经存在。确认是否重复创建,或者是否需要更换名称。
Permission denied
当前用户没有权限。优先确认是否误操作了系统目录,不要盲目添加 sudo。
很多问题并不是命令复杂,而是执行命令的位置不对。遇到报错时,先运行 pwd 和 ls,通常就能发现线索。
本篇小结
mkdir:创建目录。
mkdir -p:一次创建多层目录。
touch:创建空文件,或更新已有文件的时间戳。
cp:复制文件,原文件仍然保留。
cp -r:复制整个目录及其内容。
mv:移动文件,或者给文件和目录重命名。
下一篇
删除文件为什么要格外小心?rm、rmdir 和通配符入门