- Unix/Linux 初学者指南
- Unix/Linux - 主页
- Unix/Linux - 什么是 Linux?
- Unix/Linux - 入门
- Unix/Linux - 文件管理
- Unix/Linux - 目录
- Unix/Linux - 文件权限
- Unix/Linux - 环境
- Unix/Linux - 基本实用程序
- Unix/Linux - 管道和过滤器
- Unix/Linux - 进程
- Unix/Linux - 通信
- Unix/Linux - vi 编辑器
- Unix/Linux Shell 编程
- Unix/Linux - Shell 脚本
- Unix/Linux - 什么是 Shell?
- Unix/Linux - 使用变量
- Unix/Linux - 特殊变量
- Unix/Linux - 使用数组
- Unix/Linux - 基本运算符
- Unix/Linux - 决策
- Unix/Linux - Shell 循环
- Unix/Linux - 循环控制
- Unix/Linux - Shell 替换
- Unix/Linux - 引号机制
- Unix/Linux - I/O 重定向
- Unix/Linux - Shell 函数
- Unix/Linux - 手册页帮助
- 高级 Unix/Linux
- Unix/Linux - 标准 I/O 流
- Unix/Linux - 文件链接
- Unix/Linux - 正则表达式
- Unix/Linux - 文件系统基础
- Unix/Linux - 用户管理
- Unix/Linux - 系统性能
- Unix/Linux - 系统日志
- Unix/Linux - 信号和陷阱
Linux - 目录
Linux 目录是一个文件,其唯一作用是存储文件名和相关信息。所有文件,无论是普通文件、特殊文件还是目录文件,都包含在目录中。
本教程将详细讨论 Linux/Unix 中的目录管理。
Linux 使用分层结构来组织文件和目录。这种结构通常称为目录树。树有一个根节点,即斜杠字符 (/),所有其他目录都包含在其下方。
Linux 目录结构
文件系统的最高级别是 / 或根目录。所有其他文件和目录都存在于根目录下。以下是直接位于根 (/) 目录下的常用目录列表
目录 | 描述 |
---|---|
/bin |
重要的二进制应用程序 |
/boot |
引导配置文文件、内核以及启动时需要的其他文件。 |
/dev |
系统设备文件。 |
/etc |
配置文件、启动脚本等。 |
/home |
不同用户的家目录列表 |
/lib |
系统库、共享库 |
/lost+found |
用于存在于根 (/) 目录下的文件的 lost+found 系统 |
/media |
硬盘驱动器和可移动介质(如 CD、数码相机等)上自动挂载(加载)的分区。 |
/mnt |
硬盘驱动器上手动挂载的文件系统 |
/opt |
要安装的第三方应用程序 |
/proc |
维护有关系统状态的信息,包括当前正在运行的进程。 |
/root |
root 用户的家目录。 |
/sbin |
重要的系统二进制文件 |
/srv |
包含提供给其他系统的文件 |
/sys |
系统文件 |
/tmp |
临时文件 |
/usr |
应用程序和文件,大多数用户都可以访问 |
/var |
可变文件,例如日志和数据库 |
家目录
您首次登录时所在的目录称为您的家目录。您将在您的家目录和您将创建的子目录中完成大部分工作,以组织您的文件。
您可以随时使用以下命令进入您的家目录:
$cd ~ $
这里 ~ 表示家目录。假设您必须进入其他用户的家目录,请使用以下命令:
$cd ~username $
要进入您的上一个目录,可以使用以下命令:
$cd - $
绝对/相对路径名
目录以根 (/) 作为顶层进行分层排列。任何文件在层次结构中的位置都由其路径名描述。
路径名的元素由 / 分隔。如果路径名相对于根进行描述,则该路径名是绝对的,因此绝对路径名始终以 / 开头。
以下是一些绝对文件名示例。
/etc/passwd /users/sjones/chem/notes /dev/rdsk/Os3
路径名也可以相对于您当前的工作目录。相对路径名从不以 / 开头。相对于用户 amrood 的家目录,一些路径名可能如下所示:
../chem/notes personal/res
这里 ../ 表示从当前工作目录后退一级,然后您将找到 chem/notes。要随时确定您在文件系统层次结构中的位置,请输入命令 pwd 以打印当前工作目录:
$pwd /user0/home/amrood $
列出目录
要列出目录中的文件,可以使用以下语法:
$ls dirname
以下是如何列出 /usr/local 目录中所有文件的示例:
$ls /usr/local X11 bin gimp jikes sbin ace doc include lib share atalk etc info man ami
创建目录
我们现在将了解如何创建目录。目录由以下命令创建:
$mkdir dirname
这里,directory 是您要创建的目录的绝对或相对路径名。例如,命令:
$mkdir mydir $
在当前目录中创建目录 mydir。以下是一个示例:
$mkdir /tmp/test-dir $
此命令在 /tmp 目录中创建目录 test-dir。如果 mkdir 成功创建请求的目录,则不会产生任何输出。
如果在命令行上给出多个目录,则 mkdir 会创建每个目录。例如:
$mkdir docs pub $
在当前目录下创建目录 docs 和 pub。
创建父目录
我们现在将了解如何创建父目录。有时,当您要创建目录时,其父目录或目录可能不存在。在这种情况下,mkdir 会发出以下错误消息:
$mkdir /tmp/amrood/test mkdir: Failed to make directory "/tmp/amrood/test"; No such file or directory $
在这种情况下,您可以为 mkdir 命令指定 -p 选项。它会为您创建所有必要的目录。例如:
$mkdir -p /tmp/amrood/test $
上述命令创建所有必需的父目录。
删除目录
可以使用以下 rmdir 命令删除目录:
$rmdir dirname $
注意 - 要删除目录,请确保它为空,这意味着该目录中不应该有任何文件或子目录。
您可以一次删除多个目录,如下所示:
$rmdir dirname1 dirname2 dirname3 $
如果目录 dirname1、dirname2 和 dirname3 为空,则上述命令会删除这些目录。如果 rmdir 命令成功,则不会产生任何输出。
更改目录
您可以使用 cd 命令执行的操作不仅仅是更改为家目录。您可以通过指定有效的绝对或相对路径来使用它更改为任何目录。语法如下所示:
$cd dirname $
这里,dirname 是您要更改到的目录的名称。例如,命令:
$cd /usr/local/bin $
更改到目录 /usr/local/bin。从此目录,您可以使用以下相对路径 cd 到目录 /usr/home/amrood:
$cd ../../home/amrood $
重命名目录
mv(移动) 命令也可以用来重命名目录。语法如下:
$mv olddir newdir $
您可以将目录 mydir 重命名为 yourdir,如下所示:
$mv mydir yourdir $
目录 .(点)和 ..(点点)
文件名 .(点)表示当前工作目录;文件名 ..(点点)表示当前工作目录上一级的目录,通常称为父目录。
如果我们输入命令以显示当前工作目录/文件的列表,并使用 -a 选项列出所有文件,并使用 -l 选项提供长列表,我们将收到以下结果。
$ls -la drwxrwxr-x 4 teacher class 2048 Jul 16 17.56 . drwxr-xr-x 60 root 1536 Jul 13 14:18 .. ---------- 1 teacher class 4210 May 1 08:27 .profile -rwxr-xr-x 1 teacher class 1948 May 12 13:42 memo $