- Unix / Linux 初学者
- Unix / 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 - IO 重定向
- Unix / Linux - Shell 函数
- Unix / Linux - 联机帮助页
Unix / Linux - 目录管理
在本章中,我们将详细讨论 Unix 中的目录管理。
目录是一个文件,其唯一作用是存储文件名和相关信息。所有文件,无论是普通文件、特殊文件还是目录文件,都包含在目录中。
Unix 使用层次结构来组织文件和目录。这种结构通常称为目录树。该树有一个根节点,即斜杠字符 ( / ),所有其他目录都包含在其下方。
主目录
您首次登录时所在的目录称为您的主目录。
您将在您的主目录和子目录中完成大部分工作,您将创建这些目录和子目录来组织文件。
您可以随时使用以下命令进入您的主目录 -
$cd ~ $
这里~表示主目录。假设您必须进入任何其他用户的主目录,请使用以下命令 -
$cd ~username $
要进入最后一个目录,您可以使用以下命令 -
$cd - $
绝对/相对路径名
目录按层次结构排列,根 (/) 位于顶部。任何文件在层次结构中的位置都由其路径名描述。
路径名的元素由 / 分隔。如果相对于 root 进行描述,则路径名是绝对路径名,因此绝对路径名始终以 / 开头。
以下是绝对文件名的一些示例。
/etc/passwd /users/sjones/chem/notes /dev/rdsk/Os3
路径名也可以相对于当前工作目录。相对路径名绝不能以 / 开头。相对于用户 amrood 的主目录,某些路径名可能如下所示 -
chem/notes personal/res
要随时确定您在文件系统层次结构中的位置,请输入命令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 $