小白学Linux(四)——操作文件和目录命令

为什么要选择命令行程序进行操作

因为据说命令行程序功能强大灵活。虽然图形文件管理器能轻松地实现简单的文件操作,但是对于复杂的文件操作任务,则使用命令行程序比较容易完成。比如,拷贝一个目录下所有的HTML文件 (这些文件在目标目录不存在或者版本比目标目录的文件更新)到目标目录。 要完成这个任务,使用文件管理器比较麻烦,但使用命令行,一行就可以解决:cp -u *.html destination

虽然作为小白的我目前觉得图形界面的操作比较简单。。

通配符

shell 提供的特殊字符,可以帮你快速指定一组文件名。 通过使用通配符你可以依据字符的组合模式来选择文件名。下面是几个常用通配符:

*:代表任意多个字符(包括零个或一个)
? :代表任意一个字符(不包括零个)

[ ] :代表任意一个属于字符集中的字符
[ ! ]: 代表任意一个不是字符集中的字符

[[:class:]] :代表任意一个属于指定字符类中的字符

[:alnum:] : 代表任意一个字母或数字
[:alpha:] :代表任意一个字母
[:digit:] :代表任意一个数字

[:lower:]: 代表任意一个小写字母
[:upper:] :代表任意一个大写字母

[:punct:]:代表标点符号

通配符的使用范例

这些通配符可相互搭配使用。在 * 前面的都表示开头,在 * 后面的表示结尾。

*:表示所有文件
a * :表示文件名以“a”开头的文件
a * .txt : 表示以"a"开头,中间有零个或任意个字符,且以".txt"结尾的文件
a??? : 表示以“a”开头,其后紧接着3个字符的文件
[abc] * :表示文件名以"a",“b”,或"c"开头的文件
a.[0-9][0-9][0-9]: 表示以"a."开头,并紧接着3个数字的文件
[[:upper:]] * :表示以大写字母开头的文件
[![:digit:]] * :表示不以数字开头的文件
*[[:lower:]123] :表示文件名以小写字母结尾,或以 “1”,“2”,或 “3” 结尾的文件

扫描二维码关注公众号,回复: 11867914 查看本文章

命令

mkdir - 创建目录

mkdir directory...(directory是参数,表示文件名在描述一个命令时,当有三个圆点跟在一个命令的参数后面, 这意味着那个参数可以重复)
在这里插入图片描述
在这里插入图片描述

cp - 复制文件和目录

cp 命令,复制文件或者目录。它有两种使用方法:
1、cp item1 item2
复制单个文件或目录”item1”到文件或目录”item2”
在这里插入图片描述中间不知道为什么会提示略过目录,好像是必须要加选项。。
查了一下只知道解决方法是加个选项“ - r ”, - r 的作用是:递归地复制目录及目录中的内容。当复制目录时, 需要这个选项。

2、cp item... directory
复制多个项目(文件或目录)到一个目录下。
在这里插入图片描述
cp 常用选项

-a: 复制文件和目录,以及它们的属性,包括拥有者和所有权。 通常,副本具有用户所操作文件的默认属性。
-d:复制时保留链接。这里所说的链接相当于Windows系统中的快捷方式。
-f :覆盖已经存在的目标文件而不提示。
-i: 在重写已存在文件之前,提示用户确认。如果这个选项不指定, cp 命令会默认重写文件。
-p:除复制文件的内容外,还把修改时间和访问权限也复制到新文件中。
-r: 递归地复制目录及目录中的内容。当复制目录时, 需要这个选项(或者-a 选项)。
-u: 当把文件从一个目录复制到另一个目录时,仅复制目标目录中不存在的文件,或是文件内容新于目标目录中已经存在的文件。
-v: 显示详细的进行步骤
-n:不要覆盖已存在的文件(使用-i的话失效)

cp 的几个实例

cp -i file1 file2

复制,如果文件 file2 存在的话,在文件 file2 被重写之前, 会提示用户确认信息。
在这里插入图片描述

cp dir1/* dir2

使用一个通配符,在目录 dir1 中的所有文件都被复制到目录 dir2 中。 dir2 必须已经存在。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45884783/article/details/106007516