![v2-3f4f665b3a6fee100983385541d52751_1440w.jpg?source=172ae18b](http://img-02.proxy.5ce.com/view/image?&type=2&guid=0ae25313-522f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-3f4f665b3a6fee100983385541d52751_1440w.jpg?source=172ae18b)
03 几个操作文件和目录的命令
前面讲了 shell 是什么?如何在 Linux 写切换工作目录?还有几个对使用 Linux 系统有帮助的命令(ls、file、less/more)。如果听到这些概念你还不知道说的是什么,那建议你回过头去看看前面几天的内容,掌握了这些内容,我们也就算是能把 Linux 系统用起来了,但这还远远不够,今天我们继续学习几个操作文件和目录的 Linux 命令。
- cp:拷贝文件和目录的命令
- mv:移动或者重名了文件和目录的命令
- mkdir:创建目录的命令
- rm:删除文件或者目录的命令
- ln:创建符号链接的命令
以上这 5 个命令在我们使用 Linux 系统的过程中经常会用到,它们都是可以操作文件或者目录的。
我们的 Ubuntu 18.04 Desktop 这个操作系统也是带图形界面的,在图形界面的文件管理器这个软件中,我们可以轻松的完成文件或者目录的移动、重命名、删除等操作,那为什么还要学习命令行工具 cp、mv、mkdir、rm、ln 呢?
答案是命令行工具比图像界面工具强大,特别是对于复杂的文件或者目录的操作,使用命令行工具往往更占优势,比如:我们要复制一个目录下的所有以 .html
结尾的文件到另一个目录,而且另一个目录如果包含相同的文件的话,只有当前目录的文件比另一个目录的文件更新时才复制,否则不复制。在这个例子中,不是说我们不能使用图形界面的文件管理器工具完成,只是会比较麻烦,但是使用命令行工具的话,就是一行命令就搞定了:cp -u *.html destination
。
在介绍上面 5 个操作文件或者目录的命令行工具之前,先来看看 shell 命令的一些特性,这些特性对我们操作文件或者目录相当的有用。shell 提供一些特殊的字符来匹配具有相同属性的文件或者目录,例如上面的拷贝的例子中就有 *
这个特殊字符。我们把这些特殊字符叫做通配符,下面是 shell 中常用的通配符:
- *:匹配任意多个字符(包括零个或一个)
- ?:匹配任意一个字符(不包括零个)