文件和目录管理是Linux操作系统运行维护的基础工作,熟练掌握目录和文件操作可以大大提升运维的工作效率。

一、查看以及切换目录

cd命令

1、Change Directory的缩写,意思是改变目录。它的功能是将当前工作目录切换到你指定的位置。基本语法:cd 【目标路径】,下面还有3个特殊符号用法:

符号

含义

用法示例

..

上一级目录(父目录)

cd ..(回到上一级)

/

根目录

cd /(直接回到系统最顶层)

-

上一次所在的目录

cd -(在两个目录之间快速切换)

2、cd命令接受两种路径格式:绝对路径相对路径。那么,问题来了啥是绝对路径和相对路径呢?

  • 绝对路径:从根目录 / 开始的完整路径。比如说我们在a目录下创建b目录,那么b目录的绝对路径就是/a/b。

  • 相对路径:以当前工作目录作为起点,在开头不使用“/”符号。假设当前在a目录下,那么c的相对路径是b/c,要是在b目录下呢?c的相对路径是c。

相对路径中符号开头的含义:

表现形式 说明 示例
直接使用目录名或文件名 当前工作目录中的子目录、文件的位置 cd a.txt
以一个点号“ . ”开头 以当前的工作目录作为起点 cd ./a.txt
以两个点号“ .. ”开头 以当前目录的上一级目录(父目录)作为起点  cd  ../a.txt
 ~用户名形式开头 以指定用户的宿主目录作为起点(省略用户名时默认为当前用户)  cd  ~username

pwd命令

Print Working Directory的缩写,意思是"打印当前工作目录"。它的唯一功能就是告诉你当前在哪个目录下工作,基本语法:直接输入命令。很多初学者觉得pwd太简单了,不值得专门学习。但实际上,pwd是 Linux 命令行中最重要的安全命令之一,因为Linux 的文件系统是一个树形结构,深度可以达到几十层。当你通过cd命令在多个目录之间切换时,很容易忘记自己当前在哪里。Linux 中没有回收站,一旦文件被删除就无法恢复。绝大多数初学者犯下的毁灭性错误,都是因为不知道自己当前在哪个目录下导致的。比如:你想删除某个目录下的所有文件,于是输入了: rm -rf *  ,但你忘记了自己刚才不小心cd到了根目录 / ,这条命令会删除你整个系统的所有文件,导致系统彻底崩溃。所以每次执行危险操作时,都pwd检查一下当前工作目录正不正确。


 

ls命令

1、List的缩写,功能是列出指定目录下的所有文件和子目录。默认情况下,它只显示非隐藏文件的名称,按字母顺序排序。基本语法是: ls  【选项】  【目录路径】,下面还有5个常用选项:

选项 全称 核心功能
-l long 以长格式显示详细信息(权限、所有者、大小、时间等)
-h Human-readable 以人类可读的格式显示文件大小(KB/MB/GB)
-a All 显示所有文件,包括以“ . ”开头的隐藏文件
-t Time 按修改时间排序,最新修改的排在最前面
-r Reverse 反向排序(配合其他选项使用)

2、通配符匹配:ls支持强大的通配符功能,可以快速筛选出你想要的文件:

  • *:匹配任意多个字符
  • ?匹配任意一个字符
  • []匹配括号内的任意一个字符

演示:

alias 命令

alias意思就是 "别名",它的核心功能是给一个或多个命令创建一个简短的替代名称。你可以把它理解为命令行世界里的 "快捷键"。基本语法:alias  别名='原命令',例如:alias  ll='ls -lh',执行完这条命令后,你以后输入 ll ,系统就会自动帮你替换成 ls -lh 并执行。注意等号两边绝对不能有空格,这是初学者最常犯的错误。你在终端里直接创建的别名,只在当前终端窗口有效。一旦关闭终端,别名就会消失。要让别名永久生效,你需要把它写入 Shell 的配置文件中:

  • 对于bash(大多数 Linux 发行版默认):写入~./bashrc
  • 对于zsh:写入~/.zshrc

du命令

Disk Usage的缩写,意思就是 "磁盘使用情况",功能是递归遍历指定目录下的所有文件和子目录,计算并显示它们实际占用的磁盘空间大小,基本语法:du [选项] [文件/目录路径],下面有6个核心选项:

选项 全称 核心功能
-h Human-readable 以人类可读的格式显示大小(KB/MB/GB/TB)
-s Summarize 只显示总大小,不显示子目录的详细信息
-d N Max-depth 只递归到第 N 级子目录
-a All 同时显示所有文件和目录的大小
-c Total 最后额外显示一行总计
-S Separate-dirs 不包含子目录的大小,只显示当前目录本身的大小

创建目录和文件

mkdir 命令

Make Directory的缩写,意思就是创建目录。它的唯一功能就是在指定位置创建新的空目录。基本语法:mkdir [选项] 目录名。你可以一次性创建多个同级目录,不需要多次执行 mkdir 命令,例:mkdir  a1  a2  a3。下面是3个核心选项,其中-p经常用到

选项 全称 核心功能
-p Parents 一次性创建嵌套多层目录,不存在的父目录会自动创建(示例:mkdir  -p  a/b/c/d 。如果a目录不存在,而且不加-p,那么系统会报错)
-m Mode 创建目录时直接设置权限
-v Verbose 显示详细的创建过程,方便确认和调试

-p选项还有个小技巧,它可以和大括号组合,写脚本非常方便。

演示:mkdir -p a/{b/{b1,b2,b3},c,d}

目录结构:

a/

├── b/

│        ├── b1/

│        ├── b2/

│        └── b3/

├── c/ 

└── d/

touch命令

如果说mkdir是建造房间的地基,那么touch就是在房间里摆放空白画布的工具。

touch的意思是触摸,它的核心功能有两个:1、创建新的空文件  2、修改已有文件的时间戳(访问时间、修改时间),最简单的用法就是创建单个或多个空文件,例:touch a.txt或touch a.txt b.txt  c.txt。也可以指定路径,例:touch a/b.txt(在a目录创建b.txt文件)。如果文件已经存在,touch只会更新它的时间戳,绝对不会修改文件内容。

下面的选项可以了解一下:

选项 全称 核心功能
-a Access 只修改文件的访问时间
-m Modify 只修改文件的修改时间
-t Time 手动指定任意时间,而不是当前系统时间
-r Reference 参考另一个文件的时间戳来修改

这些选项怎么用呢?不要慌看我演示:

1、更新a.txt的访问时间和修改时间为当前时间

      touch  a.txt

2、只更新访问时间

      touch  -a   a.txt 

3、只更新修改时间

      touch  -m  a.txt

4、将文件时间设置为2026年5月20日13点14分00秒

      touch   -t   202605201314.00   a.txt

5、让b.txt的时间戳和a.txt完全一样

      touch   -r   a.txt    b.txt

Linux 系统中以 .开头的文件是隐藏文件,用touch可以轻松创建: touch   .a.txt( . 要是英文的点)。还可以创建带空格的文件,但是不推荐大家使用带空格的文件名在命令行环境下,带空格的文件名会带来很多麻烦,每次操作都需要加引号或反斜杠,增加输入负担容易出错,特别是在脚本中很多命令和工具处理带空格的文件名时会有问题,我们可以使用下划线 _ 或连字符 - 代替空格,在每个空格前面加一个反斜杠\,告诉系统这个空格是文件名的一部分,例:touch a\  b.txt。

ln命令

Link的缩写,字面意思就是 "链接"。它的核心功能是在文件系统中创建两种类型的链接,分别是硬链接和软链接,基本语法:ln [选项] 源文件 目标链接。不带任何选项时,创建硬链接。

两个常用选项:

选项 全称 核心功能
-s Symbolic 创建软链接(又称符号链接)
-f Force 强制覆盖已存在的链接

软链接:指向另一个文件或目录的快捷方式,例:ln -s /a/b/c/d.txt   /a/b/d1.txt。这个命令是什么意思呢?在/a/b目录下创建一个名为d1.txt的软链接,指向/a/b/c/d.txt 这个实际的可执行文件。以后你在 /a/b目录下操作d1.txt,就和直接操作/a/b/c/d.txt 完全一样。要注意的是永远使用绝对路径创建软链接且删除原文件后软链接会失效。

硬链接:同一个文件的多个别名。,例:ln  a.txt  aaa.txt。此时两个是完全等价的,修改其中任何一个,另一个也会同步变化,在删除源文件后硬链接任然可用但是只能在同一个文件系统(同一个分区)内创建,不能跨分区。如果需要跨分区,必须使用软链接。永远不要创建目录硬链接,创建目录硬链接会导致文件系统循环引用。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐