主题
  • 默认模式
  • 浅蓝色模式
  • 淡绿色模式
  • 深夜模式

Linux 文件与目录管理

我们知道 Linux 的目录结构为树状结构,最顶级的目录为根目录/

其他目录可以通过挂载将它们添加到树中,通过解除挂载可以移除它们。

✅ 在开始本教程前我们需要先知道什么是绝对路径与相对路径:

  • 绝对路径:路径的写法,由根目录/写起,例如:/usr/share/doc这个目录。
  • 相对路径:路径的写法,不是由/写起,例如从/usr/share/doc目录到/usr/share/man目录时,可以写成:cd ../man这就是相对路径的写法。

Linux 文件挂载


处理目录的常用命令

这些命令能帮助我们高效地浏览、创建和管理目录,是 Linux 系统中不可或缺的基础工具。

  • ls:列出目录内容(List files)
  • cd:切换工作目录(Change directory)
  • pwd:显示当前目录路径(Print working directory)
  • mkdir:创建新目录(Make directory)
  • rmdir:删除空目录(Remove empty directory)
  • cp:复制目录(Copy directory recursively)
  • rm:删除目录(Remove directory recursively)
  • mv:移动/重命名目录(Move/rename directory)

若需查看各命令的详细用法说明,可以使用系统内置的帮助手册。例如,要查看cp命令可以使用man cp查看。

ls (列出目录)

在 Linux 系统中,ls 作为日常操作中最常被调用的命令,它能够快速展示当前工作目录下的内容结构。

ls          # 列出当前目录内容
ls -l       # 以长格式显示详细信息
ls -a       # 显示所有文件(包括隐藏文件)
ls -lh      # 以易读格式显示文件大小
ls /etc     # 查看 /etc 目录下的文件

cd (切换目录)

在 Linux 系统中,cd 是 Change Directory 的缩写,是用来变换工作目录的命令。

cd ~/Documents      # 进入家目录下的 Documents
cd ../..            # 向上移动两级目录
cd /var/www/kaicz   # 使用绝对路径切换到 kaicz 目录
cd -                # 返回之前的目录(如:/home/user)
cd ..               # 表示移动到当前目录的上一级目录

pwd (显示目前所在的目录)

在 Linux 系统中,pwd 是 Print Working Directory 的缩写,用于显示当前所在目录的绝对路径。

1. 在切换目录后,可用 pwd 验证是否成功:

cd /var/log
pwd  # 输出 /var/log

2. 尤其在执行删除、移动文件等操作前,避免误操作:

pwd  # 确保不在敏感目录(如 /、/etc)

3. 在 Shell 脚本中,可以用pwd获取当前路径并赋值给变量:

CURRENT_DIR=$(pwd)
echo "当前目录是:$CURRENT_DIR"

mkdir (创建新目录)

在 Linux 系统中,mkdir 是 Make Directory 的缩写,用于创建新的目录。

1. 创建多级目录(父目录不存在时自动创建):

mkdir -p parent/child/grandchild  # 一次性创建多级目录

2. Windows 命令提示符 (CMD) 中创建多级目录:

mkdir parent\child\grandchild

3. 显示操作详情(Linux/macOS):

mkdir -v dir1 dir2  # 创建多个目录并显示过程

4. 设置目录权限(Linux/macOS):

mkdir -m 755 protected_folder  # 创建权限为 755 的目录

rmdir (删除空的目录)

在 Linux 系统中,rmdir 是 Linux/Unix 和 Windows 系统中用于删除空目录的命令,只能删除空目录,如果目录非空,则会报错。

1. Linux/macOS/PowerShell:-p删除目录及其空的父目录(如果父目录也变为空):

rmdir -p parent/child/grandchild  # 删除 grandchild,如果 parent 和 child 也变空,则一起删除

2. Windows CMD:直接使用路径,默认行为类似递归删除空目录:

rmdir parent\child\grandchild

3. 显示操作详情(Linux/macOS)-v(verbose,显示详细信息):

rmdir -v empty_dir  # 删除并显示操作信息

4. 忽略非空目录错误(Linux/macOS)--ignore-fail-on-non-empty即使目录非空,也不报错(静默跳过):

rmdir --ignore-fail-on-non-empty non_empty_dir  # 不报错,但不会删除

cp (复制文件或目录)

在 Linux 系统中,cp 是 Linux/Unix 和 macOS 系统中用于拷贝文件和目录的命令。

1. 复制文件:

cp file1.txt file2.txt          # 复制 file1.txt 为 file2.txt
cp file1.txt /path/to/dir/      # 复制 file1.txt 到指定目录

2. 复制目录(递归复制):

cp -r dir1/ dir2/              # 复制 dir1 及其内容到 dir2
cp -a dir1/ dir2/              # 保留所有属性复制

3. 复制多个文件到目录:

cp file1.txt file2.txt /backup/  # 复制多个文件到 /backup/

4. 避免覆盖已有文件:

cp -n file1.txt file2.txt      # 如果 file2.txt 已存在,则不覆盖
cp -i file1.txt file2.txt      # 覆盖前询问(默认在某些系统启用)

5. 仅复制更新的文件(增量备份):

cp -u *.txt /backup/          # 仅复制比目标目录更新的 .txt 文件

6. 保留文件权限和时间戳:

cp -p important.txt /backup/  # 复制并保留原属性
cp -a project/ /backup/       # 归档模式(适合备份)

7. 创建链接而非复制:

cp -l file1.txt hardlink.txt  # 创建硬链接(节省空间)
cp -s file1.txt symlink.txt   # 创建软链接(快捷方式)

rm (移除文件或目录)

在 Linux 系统中,rm 是 Linux/Unix 和 macOS 系统中用于删除文件或目录的命令,需谨慎使用,因为删除后通常无法恢复。

1. 删除文件:

rm file.txt            # 删除单个文件
rm file1.txt file2.txt # 删除多个文件
rm *.log               # 通配符删除所有 .log 文件

2. 删除目录(递归删除):

rm -r dir/             # 删除目录及其内容(会提示确认)
rm -rf dir/            # 强制删除目录(无确认,慎用!)

3. 交互式删除(确认每个文件):

rm -i *.txt            # 删除前逐个确认

4. 显示删除过程:

rm -v old_*.jpg        # 删除并显示详细信息

5. 删除空目录:

rm -d empty_dir/       # 等同于 `rmdir empty_dir/`

mv (移动文件与目录,或修改名称)

在 Linux 系统中,mv 是 Linux/Unix 系统中用于移动文件或目录,以及重命名文件或目录的命令。

1. 移动文件:

mv file.txt /path/to/destination/  # 将 file.txt 移动到 /path/to/destination/ 目录下

2. 移动目录:

mv dir1 /path/to/destination/  # 将 dir1 目录移动到 /path/to/destination/ 目录下

3. 重命名文件:

mv oldname.txt newname.txt # 将 oldname.txt 重命名为 newname.txt

4. 重命名目录:

mv olddir newdir # 将 olddir 目录重命名为 newdir

5. 移动多个文件到目录:

mv file1.txt file2.txt file3.txt /path/to/destination/ # 将多个文件移动到目标目录


评论区 0
发表评论