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
    
    这里,目录是您要创建的目录的绝对或相对路径名。 例如,命令 -
    
    $mkdir mydir
    $
    
    创建目录 mydir 在当前目录中。 这是另一个例子 -
    
    $mkdir /tmp/test-dir
    $
    
    此命令创建目录 test-dir 在里面 /tmp 目录。 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
    $
    
    在这种情况下,您可以指定 -p 的选项 mkdir 命令。 它为您创建所有必要的目录。 例如 -
    
    $mkdir -p /tmp/amrood/test
    $
    
    上面的命令创建了所有必需的父目录。
  • 删除目录

    可以使用删除目录 rmdir 命令如下 -
    
    $rmdir dirname
    $
    
    Note − 要删除目录,请确保它为空,这意味着该目录中不应有任何文件或子目录。
    您可以一次删除多个目录,如下所示 -
    
    $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 (move) 命令也可用于重命名目录。 语法如下 -
    
    $mv olddir newdir
    $
    
    您可以重命名目录 mydir yourdir 如下 -
    
    $mv mydir yourdir
    $
    
  • 目录。 .(点)和..(点点)

    filename . (点)代表当前工作目录; filename .. (..) 表示比当前工作目录高一级的目录,通常称为父目录。
    如果我们输入命令来显示当前工作目录/文件的列表并使用 -a option 列出所有文件和 -l option 提供长列表,我们将收到以下结果。
    
    $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
    $