Linux 基础命令详解:文件与目录操作篇(2)

Linux 基础命令详解:文件与目录操作篇

前言

在 Linux 系统中,文件和目录的管理是日常操作的核心。无论是开发者、运维工程师还是Linux爱好者,熟练掌握文件与目录的基本操作命令都是必不可少的技能。这些命令看似简单,却蕴含着高效管理系统的关键——从查看文件列表到创建、删除、移动文件,每一个命令都有其独特的用法和场景。

本文将详细介绍 Linux 中最常用的文件与目录操作命令,包括 lsmkdirrmdirechotouchrmcpmvcat 等,结合具体示例和参数说明,帮助读者快速理解并掌握这些命令的使用技巧。无论你是刚接触 Linux 的新手,还是需要巩固基础的老手,本文都能为你提供清晰的指引。

一、查看目录文件:ls 命令

ls(list)命令用于列出目录中的文件和子目录,是最常用的 Linux 命令之一。通过不同的选项,可以灵活地控制显示的内容和格式。

1. 基本用法

  • ls:默认列出当前目录下的非隐藏文件和目录(不包括以 . 开头的隐藏文件)。
  • ls 路径:列出指定路径下的文件和目录,例如 ls /home 列出 /home 目录的内容。

2. 常用选项

选项功能描述
-a显示所有文件和目录,包括隐藏文件(以 . 开头的文件)。
-l以长格式显示文件详细信息,包括权限、所有者、大小、修改时间等。
-h-l 结合使用,以人类可读的格式显示文件大小(如 1K2M3G)。
-R递归显示目录及其子目录中的所有文件(遍历所有层级)。
-t按文件修改时间排序(最新的文件在前)。
-S按文件大小排序(最大的文件在前)。
-i显示文件的 inode 编号(用于标识文件的唯一编号)。

3. 示例

# 显示当前目录的所有文件(包括隐藏文件)的详细信息
ls -al

# 以人类可读的格式显示 /var/log 目录下的文件大小和详细信息
ls -lh /var/log

# 递归显示当前目录及其子目录的所有文件
ls -lR

4. 长格式(-l)输出解读

长格式输出的每一行代表一个文件或目录,格式如下:

drwxr-xr-x  2  ly  ly  4096  7月13日 18:21  公共

各部分含义:

  • 权限字段(drwxr-xr-x):第一位为文件类型(d 表示目录,- 表示普通文件,l 表示软链接),后9位分为3组,分别表示所有者、所属组、其他用户的权限(r 读、w 写、x 执行)。
  • 硬链接数(2):指向该文件的硬链接数量(目录默认至少为2,包含 . 和自身)。
  • 所有者(ly):文件的拥有者用户名。
  • 所属组(ly):文件所属的用户组名。
  • 大小(4096):文件大小(目录默认显示为块大小,如4096字节)。
  • 修改时间(7月13日 18:21):文件最后一次修改的时间。
  • 文件名(公共):文件或目录的名称。

二、创建目录:mkdir 命令

mkdir(make directories)命令用于创建新目录。

1. 基本用法

  • mkdir 目录名:在当前目录下创建一个新目录,例如 mkdir test 创建 test 目录。
  • mkdir 路径/目录名:在指定路径下创建目录,例如 mkdir /home/ly/docs/home/ly 下创建 docs 目录。

2. 常用选项

选项功能描述
-p递归创建目录,若父目录不存在则自动创建。例如 mkdir -p a/b/c 会创建 aa/ba/b/c 三级目录。
-m创建目录时指定权限,例如 mkdir -m 777 data 创建权限为 777data 目录(所有用户可读写执行)。

3. 示例

# 创建单个目录
mkdir test

# 递归创建多级目录
mkdir -p project/src/main

# 创建指定权限的目录
mkdir -m 755 public

三、删除空目录:rmdir 命令

rmdir(remove empty directories)命令用于删除空目录,仅能删除空目录(若目录中存在文件或子目录,删除会失败)。

1. 基本用法

  • rmdir 目录名:删除当前目录下的空目录,例如 rmdir test 删除空目录 test
  • rmdir 路径/目录名:删除指定路径下的空目录。

2. 示例

# 删除空目录
rmdir empty_dir

# 若目录非空,删除失败
rmdir non_empty_dir  # 报错:rmdir: 删除 'non_empty_dir' 失败: 目录非空

注意

若需删除非空目录,需使用 rm -r 命令(见下文)。

四、向文件追加内容:echo 命令

echo 命令主要用于输出字符串,结合重定向符号(>>>)可向文件写入或追加内容。

1. 基本用法

  • echo "内容":在终端输出指定内容,例如 echo "Hello Linux" 输出 Hello Linux
  • echo "内容" > 文件名:将内容写入文件,覆盖文件原有内容(若文件不存在则创建)。
  • echo "内容" >> 文件名:将内容追加到文件末尾,不覆盖原有内容(若文件不存在则创建)。

2. 示例

# 向文件写入内容(覆盖原有内容)
echo "这是第一行" > test.txt

# 向文件追加内容
echo "这是第二行" >> test.txt

# 查看文件内容(结合 cat 命令)
cat test.txt
# 输出:
# 这是第一行
# 这是第二行

五、创建文件与修改时间:touch 命令

touch 命令有两个主要功能:创建空白文件,以及修改文件的时间参数。

1. 创建空白文件

  • touch 文件名:创建一个空白文件,若文件已存在则不修改内容,仅更新时间参数。
  • touch 文件1 文件2 ...:同时创建多个文件。

示例:

# 创建单个空白文件
touch note.txt

# 同时创建多个文件
touch a.txt b.md c.sh

2. 修改文件时间参数

Linux 中每个文件有三个关键时间参数,可通过 stat 文件名 查看:

  • 访问时间(atime):文件内容被读取时更新。
  • 修改时间(mtime):文件内容被修改时更新(最常用的时间参数)。
  • 变更时间(ctime):文件属性(如权限、所有者)被修改时更新。

touch 命令可修改这些时间参数,常用选项:

选项功能描述
-a仅更新访问时间(atime)。
-m仅更新修改时间(mtime)。
-t 时间自定义时间(格式:YYYYMMDDhhmm.ss),例如 202310011230.00 表示 2023年10月1日12:30:00。

示例:

# 查看文件时间参数
stat test.txt

# 仅更新访问时间
touch -a test.txt

# 仅更新修改时间
touch -m test.txt

# 自定义文件时间为2023年10月1日12:30:00
touch -t 202310011230.00 test.txt

六、删除文件与目录:rm 命令

rm(remove)命令用于删除文件或目录,功能强大但需谨慎使用(删除后默认不可恢复)。

1. 基本用法

  • rm 文件名:删除指定文件。
  • rm 选项 目录名:删除目录(需配合 -r 选项)。

2. 常用选项

选项功能描述
-f强制删除,不提示确认(即使文件只读)。
-i删除前提示确认(默认行为,可省略)。
-r递归删除目录及其所有子文件和子目录(删除目录必须使用)。

3. 示例

# 删除文件(带确认提示)
rm test.txt  # 提示:rm: 是否删除普通文件 'test.txt'? y(输入y确认)

# 强制删除文件(无提示)
rm -f data.txt

# 删除空目录
rm -r empty_dir

# 强制删除非空目录(无提示,慎用!)
rm -rf non_empty_dir

注意

  • rm -rf / 是极其危险的命令,会递归删除根目录下所有文件,导致系统崩溃,绝对禁止执行
  • 删除前务必确认文件/目录的路径和内容,重要文件建议先备份。

七、复制文件与目录:cp 命令

cp(copy)命令用于复制文件或目录。

1. 基本用法

  • cp 源文件 目标文件:复制单个文件到指定位置。
  • cp 源文件1 源文件2 ... 目标目录:复制多个文件到目标目录。
  • cp -r 源目录 目标目录:递归复制目录(包括子文件和子目录)。

2. 常用选项

选项功能描述
-i若目标文件已存在,提示是否覆盖(推荐日常使用)。
-r递归复制目录(必须用于目录复制)。
-a等价于 -d、-p、-r,保留文件属性、软链接并递归复制(适合备份)。
-p复制后保留源文件的属性(权限、修改时间等)。
-s创建软链接(而非复制文件内容,类似快捷方式)。
-u仅复制源文件比目标文件新的内容(用于更新文件)。

3. 示例

# 复制文件到目录(带覆盖提示)
cp -i test.txt /home/docs/

# 递归复制目录到另一个目录
cp -r project/ /backup/

# 创建软链接
cp -s /usr/bin/python3 /usr/bin/python  # 执行python即调用python3

八、移动与重命名:mv 命令

mv(move)命令用于移动文件或目录,也可用于重命名(同一目录下的移动)。

1. 基本用法

  • mv 源文件/目录 目标路径:移动文件或目录到指定路径。
  • mv 旧名称 新名称:在同一目录下重命名文件或目录。

2. 常用选项

选项功能描述
-i若目标文件已存在,提示是否覆盖(默认行为)。
-f强制覆盖目标文件,不提示。
-n若目标文件已存在,不移动也不提示(避免覆盖)。
-u仅移动源文件比目标文件新的内容(用于更新)。

3. 示例

# 移动文件到目录
mv test.txt /home/docs/

# 重命名文件
mv report_v1.doc report_v2.doc

# 移动并覆盖目标文件(无提示)
mv -f new_data.txt /data/old_data.txt

# 重命名目录
mv old_dir/ new_dir/

九、显示文件内容:cat 命令

cat(concatenate)命令用于显示文本文件的内容,也可合并多个文件。

1. 基本用法

  • cat 文件名:显示文件内容。
  • cat 文件1 文件2 > 新文件:合并多个文件内容到新文件。

2. 常用选项

选项功能描述
-n对所有行编号(包括空行)。
-b仅对非空行编号。
-E在每行结尾显示 $(标识换行符)。
-T将 Tab 键显示为 ^I(区分 Tab 和空格)。
-s压缩连续空行(合并为一行)。

3. 示例

# 显示文件内容并编号
cat -n notes.txt

# 合并多个文件
cat part1.txt part2.txt > full.txt

# 显示换行符和Tab键
cat -ET script.sh

注意

cat 适合查看小文件,大文件建议使用 lessmore 分页查看。

总结

本文介绍的 lsmkdirrmcpmv 等命令是 Linux 文件管理的基础,掌握这些命令的用法和选项,能显著提高日常操作效率。记住,Linux 命令的灵活性在于选项的组合,多练习不同场景下的命令搭配,才能真正做到熟练运用。

后续将介绍更多高级命令(如文本处理、权限管理等),敬请关注。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-曾牛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值