文章目录
- 移动文件或目录
- mv
- 格式
- 查找命令/文件存放位目录置
- which
- 格式
- 查找文件或目录
- find
- 格式
- 查找类型
- 多个查找条件
- 逻辑运算符
移动文件或目录
mv
将文件或者目录移动到指定的位置
如果目标的位置和源位置相同,相当于改名操作
跨目录移动相当于window的剪切
格式
mv +选项 +源文件或目录和位置 +目标文件或目录和位置
选项
-i 如果目标目录下有相同名字,先询问是否覆盖
-f 移动命令操作时覆盖已有的目标文件时不提示信息直接覆盖
例:mv -i
mv -f
查找命令/文件存放位目录置
which
搜索范围是环境变量PATH决定的(echo $PATH)
不存在提示命令无效
格式
- which+命令|程序名
- which+选项 +命令|程序名
例:which cd
which ping
which echo
which -a ll
which -a ls
which -a mv
查找文件或目录
find
查找文件或者目录
可以用添加递归方式,目标的大小,类型名称等查询
格式
find +被查找文件或者目录的位置 +查找的条件类型(大小类型名称等等)
查找类型
-name 按名称查找,可以使用通配符 * ?
-size 按大小查找,用+代表超过,用 -代表小于,大小单位是kB,MB,GB比如+10kB代表超过10kB的
-user 按文件属主
-type 按类型查找,普通文件(f)、目录(d)、块设备文件(b)、字符设备文件(c)、链接(l)
-prem 按权限查找
例:find /opt/ -name “x*” 查找/opt/下名字是x开头的
find /opt/ -type -f -name ".txt"查找/opt/下名称是.txt结尾的普通文件的,生产环境中查找最好要把文件类型带上,查找后会有别的操作比如删除要把类型加上查找否则会删错
find /opt/ ! -type d 查找/data/目录下的非文件夹,!反义符号
find /var/log/ -type f -name ".log"查找/var/log/下的所有名字结尾为.log格式的普通文件
查找/var/log/下大于1M的
find /home/ -user user -group user 超找home下面属主是user属组是user的
更改属组,chown :user(属组的名字) ceshi2(需要改属组的文件或者目录)
chown :root /home/112233/ceshi2 chown :root /home/112233/ceshi2.txt
先创建一个用户,用新的账户创建文件或者目录,然后切换到root下修改属组
改属主chown root(需要改成的属主名) 、home/112233/ceshi2.txt(需要改属主的文件或者目录)
chgrp也可改用法类似
find /home/ -type f | xargs chmod 755 -R查找home下面的文件并将权限从644改成755
多个查找条件
逻辑运算符
-a 表示且(and)两个或者多个条件都要满足
-o 表示或者(or)多个条件存在时满足一个即可,从第一个条件开始匹配,没有就匹配第二个,依次第三个
-not 表示非,排除某个条件的其他
例:find /boot -size +1024M -a -name “vmlinuz*”
查找boot下大小是大于1024M,并且名字是vmlinuz 的文件或者目录
扩展
xargs命令可以和管道符号配合使用
find ./ -maxdepth 1 -type f -print0 | xargs -0 ls -lh
查看当前目录下,maxdepth1 最大目录层级为一层的普通文件,并且显示易于阅读的长格式
-atime 访问时间
-mtime 文件内容修改时间
-ctime 文件属性修改时间
还有
ctime 以天为单位
cmin 以分钟为单位
日制存放在/var/log sylog里面
find ./ -name “syslog..gz" -mtime -5 -exec ls -lh {} ;
查看当前目录下名字是syslog.xxxx.gz五天内的详细的易于阅读的长格式显示出来
在生产环境中操作需要占用机器性能所有能在一条命令中处理操作的可以减少性能占用,上一个命令相当于两个命令分开执行
find ./ -name ".txt” -exec rm {} ;
在当前目录下(包括子目录),删除所有txt文件
生产情况下常用的
find /backup/ -type f -name “.log" -exec rm {} ;
删除备份文件{}代表前面查找的东西 log日志
find /backup/ -type f -name ".dmp” -exec rm {} ;
删除日志文件,dmp数据库的备份
find /backup/ -type f -name “*.tar.gz” -mtime +5 -exec rm -rf {} ;
删除5天前的备份,{} \中间有空格