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

创建Direc tories

我们现在将了解如何创建目录.目录由以下命令创建 :

$ 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
$

在这种情况下,你可以指定 -p 选项到 mkdir 命令.它会为您创建所有必需的目录.例如 :

$mkdir -p /tmp/amrood/test
$

以上命令创建所有必需的父目录.

删除目录

可以使用

$ 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(move)命令也可用于重命名目录.语法如下 :

 $ 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
$