Linux 从入门到项目实践(超值版)
上QQ阅读APP看书,第一时间看更新

4.3 文件管理与编辑命令

文件管理是操作系统中的重要功能之一。在计算机的操作系统中,用户的程序和数据、操作系统自身的程序和数据、各种输出/输入设备等都是以文件的形式存在的。那么关于文件管理的命令都有哪些呢?让我们一起来学习吧!

4.3.1 mkdir和touch命令

(1)mkdir(make directories)命令主要用于创建新的目录。mkdir命令的语法格式为:

    [abcd@localhost ~]$ mkdir [选项] 目录名

注意:目录名既可以是相对路径名也可以是绝对路径名。

mkdir命令常用的选项有-m和-p。

-m:常用于手动配置所创建目录的权限,不使用默认的权限。

-p:创建在指定路径中所有不存在的目录。例如:创建/cat/best/demo,在默认情况下,需要手动创建各个目录,但使用-p选项,系统会自动创建/cat、/cat/best以及/cat/best/demo。

【例4-11】mkdir命令创建新目录。

在终端页面输入如下命令:

    [abcd@localhost ~]$ mkdir test

输出结果如图4-18所示。

图4-18 创建新目录

(2)touch命令不仅可以创建文件(空文件或多个文件),还可以修改文件的时间参数。

在Linux系统中,每个文件有3个时间参数,分别是文件的访问时间、数据的修改时间以及状态的修改时间。

• 访问时间(atime):如果文件的内容被读取,紧接着访问时间就会自动更新。

• 数据修改时间(mtime):当文件的数据发生改变时,该文件的数据修改时间就会随着做出改变。

• 状态修改时间(ctime):当文件的状态发生变化时,就会相应改变这个时间。

touch命令的基本格式如下:

    [abcd@localhost ~]$ touch [选项] 文件名

touch命令常用的选项及作用如表4-11所示。

表4-11 touch命令常用选项及作用

注意:touch命令可以只修改文件的访问时间,也可以只修改文件的数据修改时间,但是不能只修改文件的状态修改时间。

4.3.2 rm和rmdir命令

(1)rm命令可以把系统中的文件或目录永久的删除,并且没有任何消息提示。rm命令语法格式如下:

    [abcd@localhost ~]$ rm [选项] 文件或目录

常用选项如下。

• -i:删除文件或目录之前有提示信息。

• -r:当删除目录时,删除该目录中所有的内容,包括子目录中的全部内容。

• -f:强制删除并不询问。

【例4-12】rm命令删除文件。

在终端页面输入如下命令:

    [abcd@localhost ~]$ rm -i dog

输出结果如图4-19所示。

图4-19 删除文件

rm在执行rm -i命令时,也就是在删除一个文件之前会先询问是否删除。

(2)rmdir命令用于删除空目录。在删除目录时需要先删除该目录中的子目录,然后再删除该目录。rmdir命令语法格式如下:

    [abcd@localhost ~]$ rmdir 目录名称

注意:rmdir命令的作用是十分有限,因为只能删除空目录,如果目录中有内容,系统就会报错。因此在删除目录时需要先把子目录删除。

4.3.3 cat命令

cat(concatenate)命令可以用来查看文件中的内容。cat命令的语法格式如下:

    [abcd@localhost ~]$ cat [选项] 文件

cat命令常用的选项及作用如表4-12所示。

表4-12 cat命令常用选项及作用

【例4-13】cat命令的使用。

(1)在终端页面输入如下命令:

    [abcd@localhost ~]$ cat dog

输出结果如图4-20所示。

图4-20 cat命令查看文件内容

(2)在终端页面输入cat -b dog,输出结果如图4-21所示,在每项内容之前加上了行号。

图4-21 cat -b命令的使用

4.3.4 grep命令

grep命令能够在一个或多个文件中搜索某一特定的字符模式,也称为正则表达式,一个模式可以是单一的字符、字符串、单词或句子。

正则表达式是描述字符串的一个模式,正则表达式的构成模仿了数学表达式,通过使用操作符将较小的表达式组合成一个新的表达式。正则表达式可以是一些纯文本文字,也可以是用来产生模式的一些特殊字符。grep命令支持如表4-13所示的几种正则表达式的元字符(也就是通配符)。

表4-13 正则表达式的通配符

grep命令是在每一个文件或中或特定输出上搜索特定的模式,当使用grep时,包含指定字符模式的每一行内容,都会被打印(显示)到屏幕上,但是使用grep命令并不改变文件中的内容。grep命令的语法格式如下:

    [abcd@localhost ~]$ grep [选项] 模式 文件名

grep命令常用的选项以及各自的含义如表4-14所示。

表4-14 grep命令常用选项及含义

4.3.5 more命令

more命令可以使文件中的内容分页显示。more命令的语法格式如下:

    [abcd@localhost ~]$ more 文件名

当进入more命令后,屏幕上只显示一页的内容,可以在屏幕的底部看到“--more--(n%)”的字样,其中n表示已经显示文件内容的百分比。

more命令的交互指令及功能如表4-15所示。

表4-15 more命令的交互指令及功能

【例4-14】more命令的使用。

在终端页面输入如下命令:

    [abcd@localhost ~]$ more cat2010

输出结果如图4-22所示。

图4-22 more命令的使用

4.3.6 file命令

file命令可以通过查看文件的头部信息来识别文件的类型,同时还可以用来辨别文件的编码格式。file命令的语法格式如下:

    [abcd@localhost ~]$ file 文件名

file命令的参数及功能如表4-16所示。

表4-16 file命令的参数及功能

【例4-15】file命令的使用。

在终端页面输入如下命令:

    [abcd@localhost ~]$ file dog

输出结果如图4-23所示。

图4-23 file命令查看文件类型

4.3.7 cp命令

cp(copy)命令主要用来复制文件或目录,就是将文件复制成一个指定的目的文件或复制到一个指定的目标目录中。cp命令的语法格式如下:

    [abcd@localhost ~]$ cp [选项] 源文件 目标文件

源文件(source):可以是一个或多个文件,也可以是一个或多个目录名。

目标文件(target):可以是一个文件或目录。

cp命令的选项及功能如表4-17所示。

表4-17 cp命令的选项及功能

4.3.8 mv命令

mv(move)命令,既可以在不同的目录之间移动文件或目录,也可以对文件和目录进行重命名。mv命令的语法格式如下:

    [abcd@localhost ~]$ mv [选项] 源文件 目标文件

mv命令的选项及功能如表4-18所示。

表4-18 mv命令的选项及功能

4.3.9 find命令

find命令可以在命令的层次结构中查找文件和目录。它可以使用文件名、文件大小、修改时间和类型等条件进行查找。find命令的语法格式如下:

    [abcd@localhost ~]$ find  搜索路径 [选项] 搜索内容

find命令有两个参数分别用来指定搜索路径和搜索内容。

find命令的选项如下:

(1)按照文件名搜索。

• name:按照文件名搜索;

• -iname:按照文件名搜索,不区分文件名大小;

• -inum:按照inode号搜索。

注意:在使用find命令进行搜索时,搜索的文件名必须和搜索的内容一致才能找到;Linux中的文件名是区分大小写的,因此可以用-iname来搜索;每个文件都有inode号,如果我们知道inode号,也可以按照inode号来搜索文件。

(2)按照文件大小搜索。

• -size[+|-]n:按照指定大小搜索文件,查找大小大于+n、小于-n或等于n的文件。n代表512字节大小的数据块个数。

(3)按照修改时间搜索。

• -atime [+|-]n:按照文件访问时间搜索,查找访问时间已经超过+n天、低于-n天或正好等于n天的文件。

• -mtime [+|-]n:按照文件更改时间搜索,查找更改时间是在+n天之前、不到-n天或正好在n天之前的文件。

(4)按照所有者和所属组搜索。

• uid用户ID:按照用户ID査找所有者是指定ID的文件。

• -gid组ID:按照用户组ID査找所属组是指定ID的文件。

• -user用户名:按照用户名査找所有者是指定用户的文件。

• -group组名:按照组名査找所属组是指定用户组的文件。

• -nouser:查找没有所有者的文件。

(5)按照文件类型搜索。

• -type d:查找目录。

• -type f:查找普通文件。

• -type l:查找软链接文件。

(6)逻辑运算符。

• -a:意思为“and逻辑与”。-a代表逻辑与运算,-a的两个条件都成立,find搜索的结果才成立。

• -o:意思为“or逻辑或”。-o选项代表逻辑或运算,-o的两个条件只要其中一个成立,find命令就可以找到结果。

• -not:意思为“not逻辑非”。-not是逻辑非,也就是取反。