第7章 文件和目录——Linux 真正开始工作的地方

第一节 为什么需要文件?

假设:你买了一台新的 Linux 服务器。

登录进去里面几乎什么都没有。

如果现在问你:

怎么保存一个配置?
怎么保存网站?
怎么保存图片?

答案就是:

文件(File)

文件不是 Linux 独有,Windows 也有。


第二节 什么是目录?

很多新手认为:目录和文件其实差不多。

实际上,Linux 看它们完全不同。

假设:

你家有一个衣柜,衣服就是文件,衣柜就是目录。

衣柜里面可以放很多衣服。目录里面,可以放很多文件,还可以放更多目录。

于是形成:

复制代码
/home

└── x

    ├── Documents

    │      ├── report.docx

    │      └── notes.txt

    └── Pictures

           ├── cat.jpg

           └── dog.png

所以目录真正的作用不是存数据,而是:组织数据。


第三节 第一个创建命令:mkdir

假设你想建一个目录:

复制代码
LinuxStudy

命令:

复制代码
mkdir LinuxStudy

其实就是:

Make Directory。建立目录。

执行以后不会有任何输出。

如果已经存在,它才会提示:

复制代码
mkdir: cannot create directory 'LinuxStudy': File exists

不要因为没有输出就觉得命令没执行。


💡 为什么 Linux 喜欢"沉默"?

这是 Unix 时代留下来的传统。

Linux 认为程序最重要的是:把真正需要关注的信息告诉你。

成功属于正常情况。没有必要一直说:

复制代码
创建成功
复制成功
移动成功

否则脚本运行几千条命令,终端全是:成功。真正的错误反而看不到。

所以Linux 更喜欢:

正常情况保持安静,异常情况主动提醒。


第四节 查看结果:ls

创建完成以后怎么确认?

当然还是:

复制代码
ls

例如:

复制代码
mkdir LinuxStudy

ls

输出:

复制代码
Desktop

Downloads

LinuxStudy

说明:

目录已经创建成功。


第五节 当前目录创建

很多人第一次学:

复制代码
mkdir

都会问:到底创建在哪里?

假设当前位置:

复制代码
/home/x

那么输入:

复制代码
mkdir Test

实际上创建的是:

复制代码
/home/x/Test

如果当前位置:

复制代码
/etc

那么创建的是:

复制代码
/ etc/Test

所以Linux 所有命令几乎都遵循一个原则:

如果没有写完整路径,就默认在当前目录操作。

这也是为什么上一章一直强调:

复制代码
pwd

第六节 创建多级目录

假设你想创建:

复制代码
LinuxStudy

└── Chapter1

        └── Notes

很多人会这样:

复制代码
mkdir LinuxStudy

cd LinuxStudy

mkdir Chapter1

cd Chapter1

mkdir Notes

可以。但是太慢。

Linux 有一种更聪明的方法。

复制代码
mkdir -p LinuxStudy/Chapter1/Notes

什么意思?

就是:如果上一级不存在。自动创建。


💡 为什么有 -p

因为企业里面目录可能很深。

例如:

复制代码
/opt/company/project/logs/2026/June

难道一级一级建?太慢。

所以Linux 提供:

复制代码
mkdir -p

一次完成。

这就是Linux 的设计理念:

让重复工作自动化。


第七节 创建文件:touch

现在目录有了。但是里面没有文件。

Linux 提供:

复制代码
touch

例如:

复制代码
touch notes.txt

以后:

复制代码
ls

输出:

复制代码
notes.txt

文件就出现了。


touch 真的是"创建文件"吗?

这里有一个有趣的知识。其实touch 最初的目的并不是创建文件。它真正的意思是:

更新文件时间戳(timestamp)

例如:文件已经存在。

执行:

复制代码
touch notes.txt

不会删除。不会覆盖。只是:更新时间。

因为如果文件不存在。Linux 顺便创建一个空文件。所以后来大家都拿它来建文件。


第八节 Linux 文件为什么没有"类型"?

Windows:

你看到:

复制代码
Word

Excel

图片

视频

其实Windows 是根据扩展名判断。

例如:

复制代码
report.docx

知道Word。

Linux其实没有真正的"Word 文件",只有文件。

例如:

复制代码
notes

没有后缀。Linux 完全可以接受。

所以:

复制代码
README

LICENSE

Dockerfile

这些都没有后缀。但是都是正常文件。

这也是 Linux 和 Windows 一个很大的区别。


🏢 企业里的真实场景

假设你今天进入一家互联网公司。领导说:

创建一个新的项目目录。

真正可能做的是:

复制代码
cd /home/project

mkdir backend

mkdir frontend

mkdir logs

mkdir config

或者直接:

复制代码
mkdir -p backend logs config

然后创建:

复制代码
touch README.md

touch .env

touch config.yaml

本章总结

今天,你学会了三个非常重要的命令:

命令 作用 使用频率
mkdir 创建目录 ⭐⭐⭐⭐⭐
mkdir -p 创建多级目录 ⭐⭐⭐⭐☆
touch 创建空文件(或更新时间戳) ⭐⭐⭐⭐⭐

更重要的是,你建立了两个思维:

  1. 所有相对路径操作,默认都基于当前目录。
  2. Linux 倾向于提供能够自动化重复工作的工具(例如 -p)。