复制文件或者目录(cp)

将需要复制的文件或者目录(源)重建一份,并保存为新的文件或者目录

cp 选项 源文件或者目录 目标文件或者目录

如: cp 123.txt abc.doc /etc

​ cp aa/ /etc -r :复制目录

常用选项:

-f:覆盖相同文件、目录时候不提醒,直接复制

-i:覆盖相同文件、目录时候提醒用户确认(cp是cp -i 的别名)

-p:复制时保持源文件的权限、属性与时间标记属性不变

-r:复制目录时必选此项,表示递归复制所有目录与子目录

ps:

1、复制多个文件或者目录时候,目标位置必须是目录,且目标位置得存在

2、复制好后的文件与源文件使用的不同的文件数据

3、如果不想被提示是否覆盖的时候,以绝对路径的方式去进行、如:/bin/cp -f 123.doc /opt/ 或者\cp -f 123.doc /opt/

补充:-a 相当于可以复制目录或者源文件,保持属性不变。此时不用-r了

例如:cp -a .moza /mntz

常用使用场景:备份文件

xxxx.bak备份文件

cp 123.txt 123.txt.bak

或者 cp abc.txt{, .bak}


删除文件和目录(rm)

删除指定文件或者目录

rm 选项 要删除的文件或者目录

常用选项

-f:删除文件、目录时候不提醒,直接强制删除

-r:删除目录时必选此项,表示递归删除所有目录与子目录(删除整个目录树,慎重使用!)

-i:删除文件、目录时候提醒用户确认(yes确认。no取消)

如:

rm -rf 123.txt/grube/

rm -i 123.txt/apg.conf

删除目录下的文件时候最好先切换到该目录下再执行指令rm -fr


移动文件或者目录(mv)

将指定的文件或者目录转移位置 mv 选项 源文件或者目录目标文件或者目录

如果目标位置与原位置相同,则相当于重命名操作(对一个文件进行重命名)

如:mv mytouch mkfile

​ mv nkfile 123.txt
本目录下mv 使用相当于改名效果.png

补充:批量修改命名文件

rename 旧的字符 新字符 目标文件(可以上/*通配符) rename批量修改命名.png


查找命令文件存放目录)(which)

(用来找外部命令用的,无法查找内部命令)

搜索范围由环境变量PATH决定(echo $PATH),

此外路径遵从最左原则,从左往右看(新老指令位置)

which 命令/程序名字 (默认找到第一个目标后停止)

wtich -a 命令 /程序名字 (把所有找打的路径全部都找出来)

which ls (能查找)

which history (内部命令找不到) (图:利用which查找cp) which查找cp.png


查找文件或者目录(find)

采用递归方式,根据目标的名称、文件类型、大小等不同属性进行查找

find 查找范围 查找条件表达式

查找范围:查找文件或者子目录的位置

查找条件表达式:查找条件类型 常用查找条件类型find.png

补充:-m 以时间查找 + - 以文件修改的日期来查找 (图;目录下查找grub开头的文件) fing查找目录.png粗体

find实现多个查找条件

-a表示且

-o表示或者

如find /boot -size +1024k -a -name "123*‘’表示要满足1M以上且是123开头的

find /boot -size +1024k -o -name "123*‘’表示要满足1M以上或者是是123开头的

find的高级用法:

-exec参数后面跟linux命令,它是以 . 作为结束标志。由于各个系统之间的分号会有不同意义,所以在分号前加一个 \

find匹配到当前目录下的所有普通文件,在-exec选择中选择ls -l命令把他们列出来

find ./ -type f -exec ls -l {} . (图:找到目录下1m以上且为普通文件的,找到后删除)

find高级用法.png


命令执行的优先级

第一优先级:指定路径的命令。绝对路径 /user/bin/ls 或者相对路径 cd /user/bin ./s

第二优先级:别名指定的命令 alias myls='/user/bin/ls -alh'

第三优先级:内部命令

第四优先级:hash 命令

linux系统下会有一个hash表,当你刚开机时,这个hash表为空,每当你执行过一条命令时。hash就会记录下这条命令的路径,就相当于缓存一样。第一次执行命令shell解释器默认的会从PATH路径下寻找该命令的路径,当你第二次使用该命令时,shell解释器首先查看hash表,没有该命令才会去PATH路径下寻找。hash表能提高命令的调用速度。

第五优先级:通过PATH定义的查找的顺序查找

如果以上顺序都找不到。就会报“未找到命令....”的错误