📜  Unix / Linux-目录管理

📅  最后修改于: 2020-10-31 14:44:23             🧑  作者: Mango


在本章中,我们将详细讨论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
$

此命令在/ 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 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
$