本篇将在上篇的基础上, 介绍常用的文件(目录)实际操作命令.
-
cp – Copy files and directories
- 复制文件或目录
-
mv – Move/rename files and directories
- 移动文件或目录
-
mkdir – Create directories
- 新建目录
-
rm – Remove files and directories
- 删除文件或目录
通配符
在使用文件操作命令之前, 需要先了解为什么在图形操作界面如此发达的今天, 命令行操作方式仍未被淘汰的原因. 而通配符则是答案之一.
通配符允许你依据字符的组合模式来选择文件名。下表列出这些通配符以及它们所选择的对象:
通配符 | 意义 |
---|---|
* | 匹配任意多个字符(包括零个或一个) |
? | 匹配任意一个字符(不包括零个) |
[characters] | 匹配任意一个属于字符集中的字符 |
[!characters] | 匹配任意一个不是字符集中的字符 |
[[:class:]] | 匹配任意一个属于指定字符类中的字符(见下表) |
字符类 | 意义 |
---|---|
[:alnum:] | 匹配任意一个字母或数字 |
[:alpha:] | 匹配任意一个字母 |
[:digit:] | 匹配任意一个数字 |
[:lower:] | 匹配任意一个小写字母 |
[:upper:] | 匹配任意一个大写字母 |
借助通配符, 为文件名构建非常复杂的选择标准成为可能. 这也是图形化界面难以高效实现的.
在Linux(Shell)中, 任何可以接受文件名作为命令参数的命令, 都可以使用通配符.
mkdir
mkdir 命令是用来创建目录的.
它可以同时接受多个参数以同时创建多个目录.
如:
mkdir dir1 dir2 dir3
在当前工作目录下创建三个目录,名为 dir1, dir2, dir3.
cp
cp是由copy缩写所得到的, 其所做的工作与其原本的意思无异 -- 拷贝.
它有两种使用方法:
cp item1 item2
复制文件或目录item1到目录item2
cp item... directory
复制多个文件或目录到一个目录下
除此之外, cp命令还有一些常用的可选参数, 如下:
选项 | 意义 |
---|---|
-a, --archive | 复制文件和目录,以及它们的属性,包括拥有者和所有权。 通常,副本具有用户所操作文件的默认属性。 |
-i, --interactive | 在重写已存在文件之前,提示用户确认。如果这个选项不指定, cp 命令会默认重写文件。 |
-r, --recursive | 递归地复制目录及目录中的内容。当复制目录时, 需要这个选项(或者-a 选项)。 |
-u, --update | 当把文件从一个目录复制到另一个目录时,仅复制 目标目录中不存在的文件,或者是文件内容新于目标目录中已经存在的文件。 |
-v, --verbose | 复制时显示详细的命令操作信息 |
举例:
命令 | 运行结果 |
---|---|
cp file1 file2 | 复制文件 file1 内容到文件 file2。如果 file2 已经存在, file2 的内容会被 file1 的内容重写。如果 file2 不存在,则会创建 file2。 |
cp -i file1 file2 | 这条命令和上面的命令一样,除了如果文件 file2 存在的话,在文件 file2 被重写之前, 会提示用户确认信息。 |
cp file1 file2 dir1 | 复制文件 file1 和文件 file2 到目录 dir1。目录 dir1 必须存在。 |
cp dir1/* dir2 | 使用一个通配符,在目录 dir1 中的所有文件都被复制到目录 dir2 中。 dir2 必须已经存在。 |
cp -r dir1 dir2 | 复制目录 dir1 中的内容到目录 dir2。如果目录 dir2 不存在, 创建目录 dir2,操作完成后,目录 dir2 中的内容和 dir1 中的一样。 如果目录 dir2 存在,则目录 dir1 (和目录中的内容)将会被复制到 dir2 中。 |
mv
mv源于move的缩写, 它可以用作文件或目录的移动或重命名. mv的用法与cp十分相似.
但需要注意的是, 无论是用作重命名或移动, 只要使用了mv命令, 原文件或目录将不存在.
它有同样两种使用方法:
mv item1 item2
移动文件或目录item1到目录item2
mv item... directory
复制多个文件或目录到一个目录下
mv命令与cp命令的很多可选参数都是一样的:
选项 | 意义 |
---|---|
-i --interactive | 在重写一个已经存在的文件之前,提示用户确认信息。 如果不指定这个选项,mv 命令会默认重写文件内容。 |
-u --update | 当把文件从一个目录移动另一个目录时,只是移动不存在的文件, 或者文件内容新于目标目录相对应文件的内容。 |
-v --verbose | 执行操作时显示详细的命令操作信息 |
举例:
mv file1 file2 | 移动 file1 到 file2。如果 file2 存在,它的内容会被 file1 的内容重写。 如果 file2 不存在,则创建 file2。 这两种情况下,file1 都不再存在。 |
mv -i file1 file2 | 除了如果 file2 存在的话,在 file2 被重写之前,用户会得到 提示信息外,这个和上面的选项一样。 |
mv file1 file2 dir1 | 移动 file1 和 file2 到目录 dir1 中。dir1 必须已经存在。 |
mv dir1 dir2 | 如果目录 dir2 不存在,创建目录 dir2,并且移动目录 dir1 的内容到 目录 dir2 中,同时删除目录 dir1。如果目录 dir2 存在,移动目录 dir1(及它的内容)到目录 dir2。 |
rm
rm源自remove的缩写, 它用来移除(删除)文件和目录
rm item...
同样, rm也有可选参数
选项 | 意义 |
---|---|
-i, --interactive | 在删除已存在的文件前,提示用户确认信息。 如果不指定这个选项,rm 会默默地删除文件 |
-r, --recursive | 递归地删除文件,这意味着,如果要删除一个目录,而此目录 又包含子目录,那么子目录也会被删除。要删除一个目录,必须指定这个选项。 |
-f, --force | 忽视不存在的文件,不显示提示信息。这选项覆盖了“--interactive”选项。 |
-v, --verbose | 在执行 rm 命令时,显示翔实的操作信息。 |
例:
命令 | 运行结果 |
---|---|
rm file1 | 默默地删除文件 |
rm -i file1 | 除了在删除文件之前,提示用户确认信息之外,和上面的命令作用一样。 |
rm -r file1 dir1 | 删除文件 file1, 目录 dir1,及 dir1 中的内容。 |
rm -rf file1 dir1 | 同上,除了如果文件 file1,或目录 dir1 不存在的话,rm 仍会继续执行。 |
rm -rf * | 使用了通配符, 这将删除当前工作目录下的任何东西. 删库跑路(bushi |