UNIX 目录管理

在本章中,我们将详细讨论Unix中的目录管理。
目录也是文件,它存储着文件名和文件相关信息,所有文件,无论是普通文件,特殊文件还是目录,都包含在目录中。
Unix使用分层结构来组织文件和目录,这种结构通常称为目录树,该树只有一个根节点,即斜杠字符(/),所有其他目录都包含在其下方。

Home目录

首次登录时进入到的目录称为Home目录,您也可以通过 cd ~ 命令进入Home目录-

$cd ~
$

这里〜表示主目录,假设您想进入其他用户的主目录,请使用以下命令-

$cd ~username
$

要进入最后一个目录,可以使用以下命令-

 $cd -
 $

绝对/相对路径

目录按层次结构排列,root(/)在顶部,层次结构中任何文件的位置均由其路径名描述。
路径名的元素由/分隔,如果相对于root进行描述,则路径名是绝对路径,因此绝对路径始终以/开头。
以下是绝对文件名的一些示例。

 /etc/passwd
 /users/sjones/chem/notes
 /dev/rdsk/Os3

路径名也可以相对于您当前的工作目录,相对路径名绝不能以/开头,相对于用户amrood的Home目录,某些路径名可能看起来像这样-

 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
 $

此命令在/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 #正常文件
 $
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

Powered by bytekits.com,汇天下文字,成非凡梦想!!!