操作文件&目录
- 1.通配符
-
- 2.mkdir - 创建目录
- 3.cp - 复制文件和目录
-
- 4. mv - 移动和重命名文件
-
- 5.rm - 删除文件和目录
-
- 6.ln - 创建链接
- 使用方式
-
1.通配符
例:cp -u *.html dest
含义
用于灵活的替代文件名中任意字符的特殊符号。
常用通配符
通配符 | 意义 |
---|
* | 匹配任意多个字符(0/1/多) |
? | 匹配任意一个字符(不包括0个) |
[characters] | 匹配任意一个属于字符集中的字符 |
[!characters] | 匹配任意一个不属于字符集中的字符 |
[[:class:]] | 匹配任何一个属于指定字符类中的字符 |
常用字符类
字符类 | 意义 |
---|
[:alnum:] | 匹配任一个字符或数字 |
[:alpha:] | 匹配任一个字母 |
[:digit:] | 匹配任一个数字 |
[:lower:] | 匹配任一个小写字母 |
类型匹配范例
模式 | 匹配对象 |
---|
g* | 文件名以"g"开头的所有文件 |
b*.txt | 文件名以b开头,并以.txt结尾的文件 |
[[:upper:]] | 以大写字母开头的文件 |
接受文件名作为参数的任何命令,都可以使用通配符
2.mkdir - 创建目录
工作方式: mkdir directory...
其中...
表示参数可以多个重复
例如mkdir dir1 dir2 dir3
3.cp - 复制文件和目录
工作方式
- 复制单个文件:
cp item1 item2
- 复制多个文件:
cp item... directory
常用选项
选项 | 意义 |
---|
-a | 复制文件或目录,以及他们的属性,如所有权和权限 |
-i | 重写已存在文件前,询问用户 |
-r | 递归地复制目录及其中的内容 |
-u | 把文件从一个目录复制到另一个目录时,仅复制不存在的文件,或者是文件内容更新的文件 |
-v | 显示详实的命令操作信息 |
4. mv - 移动和重命名文件
工作方式
- 移动/重命名单个文件:
mv item1 tiem2
- 移动/重命名多个文件:
mv item... directory
常用选项
选项 | 意义 |
---|
-i | 重写已存在文件前,询问用户 |
-u | 把文件从一个目录复制到另一个目录时,仅复制不存在的文件,或者是文件内容更新的文件 |
-v | 显示详实的命令操作信息 |
5.rm - 删除文件和目录
工作方式
rm
命令用来移动(删除)文件和目录
rm item...
其中 item表示一个或多个文件或目录
常用选项
选项 | 意义 |
---|
-i | 删除已存在文件前,询问用户 |
-r | 递归的删除文件,即删除一个目录时,必须使用该选项,连带着其子目录一起删除 |
-f | 忽略不存在的文件,不显示提示信息 |
-v | 显示详实的命令操作信息 |
注意事项
linux假设用户知道自己在干什么,所以没有复原命令
当使用通配符删除文件时
例:rm *.html
如果不小心多了空格 就变成rm * .html
这样会把目录下的所有文件都删除
建议:当使用通配符删除文件时 先通过ls
…来查看将要被删除的文件是什么 当确认后再用rm
删除
6.ln - 创建链接
使用方式
- 创建硬链接:
ln file link
- 创建符号链接:
ln -s item link
- item可以是一个文件或目录
硬链接
定义
每个文件默认有一个硬链接,这硬链接基于文件名字。每创建一个硬链接,就为文件创建了一个额外的目录项。
局限性
- 一个硬链接只能关联他所在的文件系统之内的文件,即不能关联与链接本身不在同一个磁盘分区上的文件
- 一个硬链接不能关联一个目录
特点
- 一个硬链接和文件本身并没有什么区别,没有特殊的链接指示说明
- 一个硬链接被删除时,这个链接被删除,但文件本身内容仍存在,直到关联这个文件的所有链接都被删除掉
实例
我们创建了fun文件的一个硬链接,实际上两者对应于同一个索引节点,故内容完全一致,只有名称不同
符号链接
定义
创造符号链接,是为了克服硬链接的局限性
通过创造一个特殊文件,这个文件包含了一个关联文件或目录的文本指针,类似于快捷方式
特点
- 向一个符号链接写入东西,那么相关联的文件也被写入
- 删除一个符号链接时,只有这个链接被删除,而不是文件自身
- 如果先于符号链接删除文件,这个链接仍存在,但是不指向任何东西,被称作
坏链接
实例
创建一个符号链接并查看
可见符号链接被特殊颜色标识出来
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)