Linux 漫游之旅

几个操作文件和目录的命令

2019-06-24  本文已影响69人  错过了过去

前面讲了 shell 是什么?如何在 Linux 写切换工作目录?还有几个对使用 Linux 系统有帮助的命令(ls、file、less/more)。如果听到这些概念你还不知道说的是什么,那建议你回过头去看看前面几天的内容,掌握了这些内容,我们也就算是能把 Linux 系统用起来了,但这还远远不够,今天我们继续学习几个操作文件和目录的 Linux 命令。

以上这 5 个命令在我们使用 Linux 系统的过程中经常会用到,它们都是可以操作文件或者目录的。

我们的 Ubuntu 18.04 Desktop 这个操作系统也是带图形界面的,在图形界面的文件管理器这个软件中,我们可以轻松的完成文件或者目录的移动、重命名、删除等操作,那为什么还要学习命令行工具 cp、mv、mkdir、rm、ln 呢?

答案是命令行工具比图像界面工具强大,特别是对于复杂的文件或者目录的操作,使用命令行工具往往更占优势,比如:我们要复制一个目录下的所有以 .html 结尾的文件到另一个目录,而且另一个目录如果包含相同的文件的话,只有当前目录的文件比另一个目录的文件更新时才复制,否则不复制。在这个例子中,不是说我们不能使用图形界面的文件管理器工具完成,只是会比较麻烦,但是使用命令行工具的话,就是一行命令就搞定了:cp -u *.html destination

在介绍上面 5 个操作文件或者目录的命令行工具之前,先来看看 shell 命令的一些特性,这些特性对我们操作文件或者目录相当的有用。shell 提供一些特殊的字符来匹配具有相同属性的文件或者目录,例如上面的拷贝的例子中就有 * 这个特殊字符。我们把这些特殊字符叫做通配符,下面是 shell 中常用的通配符:

除了通配符外,shell 还提供了字符类供 shell 命令匹配使用,如下:

借助通配符,为文件名构建非常复杂的选择标准成为可能。下面是一些类型匹配的范例:

上面这些通配符和字符类非常重要,这对我们更好的使用 Linux 系统是很有帮助的,所以一定要结合例子深入的理解。下面我们正式开始介绍今天的 5 的命令。

1. mkdir

用法:mkdir directory...
说明:在描述一个命令时(如上所示),当有三个圆点跟在一个命令的参数后面, 这意味着那个参数可以重复,就像这样:

2. cp

cp 命令,复制文件或者目录。它有两种使用方法:

cp 命令也是可以带参数的,下面是一些常用的参数:

下面是 cp 命令的写使用示例,请大家练习使用:

3. mv

mv 命令可以执行文件移动和文件命名任务,这依赖于你怎样使用它。任何一种 情况下,完成操作之后,原来的文件名不再存在。mv 使用方法与 cp 很相像:

mv 命令的常用的参数如下:

mv 命令的使用示例,请大家练习使用:

4. rm

rm 命令用来移除(删除)文件和目录:

rm 命令的常用参数如下:

rm 命令的使用示例,请大家练习使用:

特别注意:
类 Unix 的操作系统,比如说 Linux,没有复原命令。一旦你用 rm 删除了一些东西, 它就消失了。

尤其要小心通配符。思考一下这个经典的例子。假如说,你只想删除一个目录中的 HTML 文件。输入:rm *.html

这是正确的,如果你不小心在 “*” 和 “.html” 之间多输入了一个空格,就像这样:rm * .html

这个 rm 命令会删除目录中的所有文件,还会抱怨没有文件叫做 ".html"。

小贴士: 当你使用带有通配符的 rm 命令时(除了仔细检查输入的内容外), 先用 ls 命令来测试通配符。这会让你看到将要被删除的文件是什么。然后按下上箭头按键,重新调用 刚刚执行的命令,用 rm 替换 ls。

5. ln

ln 命令既可创建硬链接,也可以创建符号链接。可以用其中一种方法来使用它("item" 可以是一个文件或是一个目录。):

5.1. 硬链接

与更加现代的符号链接相比,硬链接是最初 Unix 创建链接的方式。每个文件默认会有一个硬链接, 这个硬链接给予文件名字。我们每创建一个硬链接,就为一个文件创建了一个额外的目录项。 硬链接有两个重要局限性:

一个硬链接和文件本身没有什么区别。不像符号链接,当你列出一个包含硬链接的目录 内容时,你会看到没有特殊的链接指示说明。当一个硬链接被删除时,这个链接 被删除,但是文件本身的内容仍然存在(这是说,它所占的磁盘空间不会被重新分配), 直到所有关联这个文件的链接都删除掉。知道硬链接很重要,因为你可能有时 会遇到它们,但现在实际中更喜欢使用符号链接,下一步我们会讨论符号链接。

5.2. 符号链接

创建符号链接是为了克服硬链接的局限性。符号链接生效,是通过创建一个 特殊类型的文件,这个文件包含一个关联文件或目录的文本指针。在这一方面, 它们和 Windows 的快捷方式差不多,当然,符号链接早于 Windows 的快捷方式 很多年。

一个符号链接指向一个文件,而且这个符号链接本身与其它的符号链接几乎没有区别。 例如,如果你往一个符号链接里面写入东西,那么相关联的文件也被写入。然而, 当你删除一个符号链接时,只有这个链接被删除,而不是文件自身。如果先于符号链接 删除文件,这个链接仍然存在,但是不指向任何东西。在这种情况下,这个链接被称为坏链接。在许多实现中,ls 命令会以不同的颜色展示坏链接,比如说红色,来显示它们的存在。

上一篇 下一篇

猜你喜欢

热点阅读