Linux操作文件与目录——cp、mv、mkdir、rm和ln命令

1.通配符

表1 常用的通配符以及它们所选择的对象

通配符 匹配项
* 匹配任意多个字符(包括0个和1个)
匹配任意单个字符(不包括0个)
[characters] 匹配任意一个属于字符集中的字符
[!characters] 匹配任意一个不属于字符集中的字符
[[:class:]] 匹配任意一个属于指定字符类中的字符

表2 最常见的字符类

字符类 匹配项
[:alnum:] 匹配任意一个字母或数字
[:alpha:] 匹配任意一个字母
[:digit] 匹配任意一个数字
[:lower:] 匹配任意一个小写字母
[:upper:] 匹配任意一个大写字母

表3 通配符示例

形式 匹配项
* 所有文件
g* 以g开头的任一文件
b*.txt 以b开头,中间有任意多个字符,并以.txt结尾的任一文件
Data??? 以Data开头,后面跟3个字符的任一文件
[abc]* 以a,b,c任一一个开头的任一文件
BACKUP.[0-9][0-9][0-9] 以BACKUP.开头,后面跟随3个数字的任一文件
[[:upper:]]* 以大写字母开头的任一文件
[![:digit:]]* 不以数字开头的任一文件
*[[:lower]123] 以小写字母或数字1、2、3中任一结尾的任一文件

2. mkdir——创建目录

语法 mkdir directory …
可同时创建多个目录,例如
mkdir dir1 dir2 dir3

3.cp——复制文件和目录

语法
复制单个文件: cp item directory
复制多个文件: cp item… directory

表4 cp命令选项

选项 含义
-a,–archive 复制文件和目录及其属性包括所有权和权限。通常来说,复制文件具有用户所操作文件的默认属性
-i ,–interactive 在覆盖一个已存在的文件前,提醒用户进行确认。如果没有指定该选项,cp会默认覆盖文件
-r, --recursive 递归地复制目录及其内容。复制目录时需要该选项
-u,–update 当将文件从一个目录复制到另外一个目录时,只会复制哪些目标目录中不存在的文件或是目标目录相应的更新文件
-v, --verbose 复制文件时,显示信息性消息(informative message)

表5 cp命令示例

命令 结果
cp file1 file2 将file1复制到file2,如果file2存在,则会被file1的内容覆盖,如果file2不存在,则创建file2
cp -i file1 file2 同上,区别在于file2存在时,覆盖之前会通知用户确认
cp file1 file2 dir1 将file1和file2复制到目录dir1里,dir1必须已经存在
cp dir1/* dir2 通过使用通配符,将dir1中的所有文件复制的dir2中,dir2必须已经存在
cp -r dir1 dir2 将dir1目录(及其内容)复制到dir2目录中,如果dir2不存在,创建dir2,且包含与dir1目录相同的内容.

4. mv——移除和重命名文件

语法与cp类似
mv item1 item2,将文件(或目录)item1移动(或重命名)为item2
mv item… directory, 将一个或多个条目从一个目录移动到另一个目录下.

表6 mv命令选项

选项 含义
-i ,–interactive 在覆盖一个已存在的文件前,提醒用户进行确认。如果没有指定该选项,cp会默认覆盖文件
-u,–update 当将文件从一个目录移动到另外一个目录时,只会移动哪些目标目录中不存在的文件或是目标目录相应的更新文件
-v, --verbose 移动文件时,显示信息性消息(informative message)

表7 mv命令示例

命令 结果
mv file1 file2 将file1移动到file2,如果file2存在,则会被file1的内容覆盖,如果file2不存在,则创建file2,无论哪种情况,file1不再存在
mv -i file1 file2 同上,区别在于file2存在时,覆盖之前会通知用户确认
mv file1 file2 dir1 将file1和file2移动到目录dir1里,dir1必须已经存在
mv dir1 dir2 将dir1(和其内容)移动到dir2中,如果dir2不存在,创建目录dir2,将dir1的内容移动到dir2下,同时删除目录dir1

5.rm——删除文件和目录

语法为 rm item…
表8 rm选项

选项 含义
-i, --interative 删除一个已存在的文件前,提示用户确认。如果没有指定这个选项,rm命令会默认删除文件
-r, --recursive 递归地删除目录。要删除一个目录,则必须指定该选项
-f,–force 忽略不存在的文件并无需提示确认,该选项会覆盖–interative选项
-v,–verbose 删除文件时显示信息性消息

表9 rm实例
命令 | 结果
rm file1 | 在不提示用户的情况下,删除file1
rm -i file1 | 删除file1前,提示用户确认
rm -r file1 dir1 | 删除file1、dir1以及它们的内容
rm -rf file1 dir1 | 同上,当file1或dir1不存在时,rm仍会继续执行,且不提示用户

6. ln——创建链接

语法:
ln file link,用来创建硬链接
ln -s item link, 用来创建软链接

6.1 硬链接

当创建一个硬链接时,也为这个文件创建了一个额外的目录条目,硬链接有两条重要的局限性:

  • 硬链接不能引用自身文件系统之外的文件。也就是说,链接不能引用与该链接不在同一磁盘分区的文件。
  • 硬链接无法引用目录。
ln fun fun-hard
ln fun dir1/fun-hard
ln fun dir2/fun-hard
ls -li

可通过索引字节号,即第一个字段,来看到fun和fun-hard共享同一个索引节点号。

6.2 符号链接

符号链接克服了硬链接的各种局限,与windows系统下的快捷方式很像。

ln -s fun fun-sym
ln -s ../fun dir1/fun-sym
ln -s ../fun dir2/fun-sym
ls -l dir1

输出首字段第1个字段的首字符“l”来确认的.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章