冒险岛079

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 0|回复: 0

Day 03 基础命令入门:文件与目录操作

[复制链接]

606

主题

13

回帖

1940

积分

管理员

积分
1940
发表于 3 小时前 | 显示全部楼层 |阅读模式
如果你刚接触 Linux 或 macOS 终端,面对那个黑底白字的窗口,多少会有点发怵。别担心,这篇文章会带你从最基础的文件和目录操作开始,一步步摸清终端的脾气。读完之后,你至少能在命令行里自如地浏览目录、创建文件、复制移动、删除清理——这些操作占了日常终端使用的大半。

先搞清楚你在哪:pwd

打开终端,第一件事往往是搞清楚自己当前所在的位置。
  1. pwd
复制代码
就是干这个的,全称是 Print Working Directory(打印工作目录)。
  1. pwd
  2. # 输出示例:/home/username
复制代码

它没有花哨的参数,就是老老实实告诉你"你现在站在文件系统的哪个位置"。看起来简单,但在你敲了一堆
  1. cd
复制代码
跳来跳去之后,
  1. pwd
复制代码
能帮你快速定位自己,避免在错误的目录里执行危险操作。

四处逛逛:cd

知道自己在哪之后,自然要学会移动。
  1. cd
复制代码
是 Change Directory 的缩写,用来切换目录。
  1. cd /etc            # 跳到 /etc 目录
  2. cd Documents       # 进入当前目录下的 Documents 文件夹
  3. cd ..              # 回到上一级目录
  4. cd ~               # 回到家目录(你的"老巢")
  5. cd -               # 回到上一次待过的目录
复制代码

这里要插一句关于绝对路径相对路径的事,因为这个概念贯穿所有文件操作命令。

绝对路径 vs 相对路径

绝对路径从根目录
  1. /
复制代码
开始写,像门牌号一样完整无歧义:
  1. /home/username/Documents/report.txt
复制代码
。不管你当前在哪个目录,用绝对路径永远能准确定位到目标。

相对路径则以当前目录为起点。如果你正站在
  1. /home/username
复制代码
,那
  1. Documents/report.txt
复制代码
就够了。这里有两个特殊符号要记住:
  1. .
复制代码
代表当前目录,
  1. ..
复制代码
代表上一级目录。

怎么选?坦白说,日常操作用相对路径更省事,但在写脚本或配置文件时,绝对路径更靠谱——因为脚本可能在任何目录下被执行。

看看有什么:ls
  1. cd
复制代码
到一个目录后,你需要知道里面有什么。
  1. ls
复制代码
(list 的缩写)是你用得最多的命令之一。
  1. ls                 # 列出当前目录内容
  2. ls -l              # 长格式显示(权限、大小、修改时间等)
  3. ls -a              # 显示隐藏文件(以 . 开头的文件)
  4. ls -la             # 两个参数组合使用
  5. ls -lh             # -h 让文件大小显示为人类可读格式(KB、MB)
  6. ls /var/log        # 查看指定目录的内容
复制代码
  1. ls -la
复制代码
大概是我个人敲得最多的组合。它能让你一眼看到目录里所有文件(包括隐藏的配置文件),以及每个文件的权限、所有者和修改时间。

创建目录:mkdir

浏览够了,开始动手创建东西。
  1. mkdir
复制代码
(Make Directory)用来新建文件夹。
  1. mkdir projects                    # 创建一个目录
  2. mkdir -p projects/web/css         # 一次性创建多层嵌套目录
复制代码
  1. -p
复制代码
参数非常实用。没有它,如果中间层目录不存在,命令会直接报错。加上
  1. -p
复制代码
,它会把缺失的中间目录一并创建,省得你一层一层
  1. mkdir
复制代码


创建文件:touch
  1. touch
复制代码
最常见的用途是快速创建一个空文件。
  1. touch notes.txt
  2. touch file1.txt file2.txt file3.txt   # 一次创建多个
复制代码

严格来说,
  1. touch
复制代码
的本职工作是更新文件的时间戳。如果文件已经存在,它不会清空内容,只会刷新修改时间。但大家用得最多的场景还是"快速建个空文件"。

复制:cp
  1. cp
复制代码
(Copy)的基本用法很直观——从哪里复制到哪里。
  1. cp report.txt report_backup.txt        # 复制文件并重命名
  2. cp report.txt ~/Documents/             # 复制到指定目录
  3. cp -r projects projects_backup         # 复制整个目录
复制代码

注意那个
  1. -r
复制代码
(recursive,递归)。复制目录时必须加上它,否则
  1. cp
复制代码
会拒绝执行——这其实是个保护机制,防止你无意中复制了一大堆不需要的东西。

还有个
  1. -i
复制代码
参数值得一提,它会在覆盖已有文件前先问你一声:
  1. cp -i report.txt ~/Documents/
  2. # 如果目标位置已有同名文件,会提示:overwrite? (y/n)
复制代码

移动和重命名:mv
  1. mv
复制代码
(Move)做两件事:移动文件,以及重命名文件。
  1. mv report.txt ~/Documents/             # 移动文件
  2. mv old_name.txt new_name.txt           # 重命名
  3. mv *.txt archive/                      # 把所有 txt 文件移到 archive 目录
复制代码

你会发现"重命名"在 Linux 里并没有专门的命令,
  1. mv
复制代码
一肩两挑。逻辑上也说得通:把一个文件从"旧名字"移动到"新名字",效果就是重命名。
  1. mv
复制代码
  1. cp
复制代码
一样,支持
  1. -i
复制代码
参数来避免意外覆盖。建议养成习惯,对重要文件操作时带上它。

删除:rm 和 rmdir

讲真,
  1. rm
复制代码
是终端里最需要敬畏的命令。Linux 没有回收站这个概念,
  1. rm
复制代码
删掉的东西基本找不回来。
  1. rm notes.txt                    # 删除文件
  2. rm -i notes.txt                 # 删除前确认
  3. rm -r old_project               # 删除目录及其所有内容
复制代码
  1. rmdir
复制代码
  1. rm
复制代码
的"温柔版",只能删除空目录
  1. rmdir empty_folder              # 只有目录为空时才能成功
复制代码

如果目录里有东西,
  1. rmdir
复制代码
会直接报错拒绝执行。这个设计是故意的——它比
  1. rm -r
复制代码
安全得多。

关于
  1. rm -rf
复制代码
,你可能在网上见过各种段子。这个组合的意思是"递归删除且不询问确认",威力巨大。在你对命令行足够熟悉之前,不要轻易使用它,尤其不要在根目录附近运行。

通配符:批量操作的利器

到这里,单个文件的操作你已经掌握了。但如果目录里有 200 个文件,你总不能一个一个敲名字。通配符就是解决这个问题的。

| 通配符 | 含义 | 示例 |
|--------|------|------|
|
  1. [i]
复制代码
| 匹配任意数量的任意字符 |
  1. [/i].txt
复制代码
匹配所有 txt 文件 |
|
  1. ?
复制代码
| 匹配单个任意字符 |
  1. file?.txt
复制代码
匹配 file1.txt、fileA.txt |
|
  1. [abc]
复制代码
| 匹配方括号内的任意一个字符 |
  1. file[123].txt
复制代码
匹配 file1.txt、file2.txt、file3.txt |
|
  1. [0-9]
复制代码
| 匹配范围内的任意一个字符 |
  1. log[0-9].txt
复制代码
匹配 log0.txt 到 log9.txt |

实际用起来是这样的:
  1. ls *.log                # 列出所有日志文件
  2. cp *.jpg ~/Pictures/    # 把所有 jpg 图片复制到 Pictures
  3. rm temp_*               # 删除所有以 temp_ 开头的文件
  4. mv report_202?.pdf archive/  # 移动 report_2020.pdf 到 report_2029.pdf
复制代码

通配符是 Shell 在执行命令之前展开的,也就是说
  1. ls *.txt
复制代码
实际上会被 Shell 先翻译成
  1. ls file1.txt file2.txt file3.txt ...
复制代码
,然后再交给
  1. ls
复制代码
执行。理解这一点,你就能明白为什么通配符几乎在所有命令里都能用——它不是某个命令的专属功能,而是 Shell 本身的能力。

一些实用建议

善用 Tab 键补全。 输入文件名或路径时,敲几个开头字母然后按 Tab,Shell 会自动补全。这不只是省力,还能帮你避免拼写错误。

删除前先用 ls 验证。 比如你打算执行
  1. rm [i].log
复制代码
,不妨先跑一下
  1. ls [/i].log
复制代码
,确认匹配到的文件确实是你想删的。

复杂操作先在测试目录练手。 建个
  1. ~/playground
复制代码
目录,在里面随便折腾,哪怕全删了也不心疼。

这些命令看着简单,但组合起来能完成相当复杂的文件管理任务。先把每个命令的基本用法记住,然后在日常使用中慢慢摸索参数和技巧。命令行这东西,用得越多手感越好,不用死记硬背——敲多了自然就记住了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

果子博客
扫码关注微信公众号

Archiver|手机版|小黑屋|风叶林

GMT+8, 2026-3-22 04:02 , Processed in 0.113115 second(s), 22 queries .

Powered by 风叶林

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表