2.3 管理文件及目录
系统管理员在日常工作中需要对各种文件和目录进行管理,包括文件和目录的创建、删除、复制、移动等操作。这些操作除了可以在GNOME桌面环境中通过鼠标右键完成,也可以通过命令行完成。
1.文件的操作
(1)touch命令:此命令可以创建一个空文件或改变一个已经存在的文件的时间戳。
注意,上述文件的大小为0,说明这是新建的空文件,没有内容。如果再次对file1执行touch命令,则只会改变时间戳,其内容不会被覆盖(如果有内容的话)。
由上述代码可以发现,只有时间戳改变了,其他内容并未改变。
(2)cp命令:此命令可以复制文件。它有几个比较常用的选项。
-i选项:交互式提问。例如,/var下已经有file1,当再次复制的时候,加入-i选项,会提示是否覆盖。
注意:在红帽操作系统中,已经使用alias命令对cp命令做了别名设置,使用cp时,等同于使用“cp-i”。
-r选项:递归复制目录。cp命令默认只能复制文件,对于目录的操作,必须加入-r选项。
-p选项:复制源文件到目标位置时,保持文件属性不变。
(3)mv命令:该命令用于移动或重命名文件。在同一目录中,mv命令用于重命名;跨不同目录时,则用于移动。下面的代码把file1重命名为file2。
由于没有变更目录,所以只是重命名的操作。
注意:mv和cp一样,也可以使用-i选项,进行交互式提问。
除了可以移动文件,mv命令也可以直接把整个目录树移动到其他目录中。例如,把Music目录移动到/srv目录中。
(4)rm命令:该命令用来对文件进行删除操作。rm命令有三个非常重要的选项。
-i选项:和mv、cp命令一样,用于交互式提问。例如,用户删除一个文件时,会提示是否真的删除,以免误操作。
-r选项:递归删除目录树。rm命令默认只能删除文件,如果想删除目录,则必须加上-r选项。
注意:在红帽操作系统中,已经用alias命令对rm命令进行了别名设置,因此-i选项可以省略。
-f选项:如果确定要删除某个目标文件,则可以直接使用-f选项进行强制删除,而不会出现提示。
注意:root用户在执行“rm-rf”命令时一定要谨慎,此操作会把某个文件或目录结构直接删除。
2.目录的操作
(1)mkdir命令:创建新目录。
上述代码可以创建一个名为dir1的目录,如果想在此目录下继续创建多个子目录,则可以使用-p选项,一次性输入需要创建的子目录名,按回车键。
(2)rmdir命令:删除空目录。注意,这个命令只能删除空目录,如果目录中有文件,则删除失败。例如,如果删除刚才建立的dir1目录,则系统会报错。
此时可以使用“rm-r”命令删除目录。
(3)tree命令:列出目录树结构,即把某个目录中的所有文件和子目录结构列出来。
3.查看文件内容
在查看文件内容时,有时需要查看文件的所有内容,而有时需要查看特定的某一栏或某一列的内容。
(1)cat命令:此命令可以查看文件内容,通过-n选项可以自动添加行号。
例如,查看/etc/passwd文件内容。
除了可以直观地把文件内容显示出来,cat命令还可以利用文件结束标识符“EOF”把文件内容以标准输入的方式导入。
注意:EOF不是固定的,可以替换成任何字符,但文件内容输入结束后,必须和前面的结束标识符一致。
(2)more命令:支持一页一页查看文件内容,同时显示文件内容的百分比。
(3)head命令:默认查看文件内容的前10行。可以通过-n选项指定希望查看的行数。
(4)tail命令:默认查看文件内容的后10行。可以通过-n选项指定希望查看的行数。
注意:利用tail命令查看文件内容时,可以使用-f选项动态跟踪最新内容。例如,查看某个日志文件时,如果有新日志数据进来,则会动态地在终端上显示。
(5)cut命令:支持查看文件的部分内容。为了实现查看具体某个部分,需要有下面几个选项的配合。
-t:指定分隔符,如果不指定,则默认使用Tab键来进行文件内容的分割。
-f:指定文件的字段,按列指定。
在上面的代码中,只查看/etc/passwd中的第一列内容,即用户名。