文件查找
知识点
- grep: 文件内容过滤
- find : 文件查找,针对文件名
- xargs
- 文件打包及压缩 gzip bzip2 xz unzip(了解)
1.1 命令文件 # which ls //从PATH环境变量 (echo $PATH)
where is vim
[root@localhost ~]# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/local/htop/bin/:/root/bin
1.2、任意文件
A. locate
(查询的数据库: /var/lib/mlocate/mlocate.db)计划任务:每天自动更新数据库 /etc/cron.daily/mlocate.cron 手动更新数据库:updatedb
locate ifcfg-eth0
locate ifcfg-enp0s25
updatedb后才能查找到 非常麻烦 不建议使用 如果没有 locate 使用YUM直接安装是不行的。 要查一下在哪个包里 yum provides locate -→ mlocate → 直接YUM mlocate即可
find详解
find options [expression] [action]
===expression=== 熟用*通配符
1按文件名:
[root@newrain ~]# find /etc -name "ifcfg-eth0"
[root@newrain ~]# find /etc -iname "ifcfg-eth0" //-i忽略大小写
[root@newrain ~]# find /etc -iname "ifcfg-eth*"
2按文件大小:
[root@newrain ~]# find /etc -size +5M //大于5M
[root@newrain ~]# find /etc -size 5M
[root@newrain ~]# find /etc -size -5M
[root@newrain ~]# find /etc -size +5M -ls //-ls找到的处理动作 不是平时用的ls
ll - h 查看大小
3指定查找的目录深度:
-maxdepth levels
-mindepth levels
[root@newrain ~]# find / -maxdepth 3 -a -name "ifcfg-eth0" maxdepth 3 最大3层 a要满足2个条件 并且
按时间找(atime,mtime,ctime):
[root@newrain ~]# find /etc -mtime +5 //修改时间超过5天
[root@newrain ~]# find /etc -mtime 5 //修改时间等于5天
[root@newrain ~]# find /etc -mtime -5 //修改时间5天以内
4按文件类型:
[root@newrain ~]# find /dev -type f //f普通
[root@newrain ~]# find /dev -type d //d目录
[root@newrain ~]# find /dev -type l //l链接
[root@newrain ~]# find /dev -type b //b块设备
[root@newrain ~]# find /dev -type c //c字符设备
[root@newrain ~]# find /dev -type s //s套接字
[root@newrain ~]# find /dev -type p //p管道文件
5按文件权限:
[root@newrain ~]# find . -perm 644 -ls .是当前目录 精确查找644 *一般都是精确
[root@newrain ~]# find . -perm -644 -ls -是包含到意思
带不带- 自己对比一下 查看。 带-表示只要6就可以
[root@newrain ~]# find . -perm -600 -ls
[root@newrain ~]# find . -perm -222 -ls //全局可写
[root@newrain ~]# find /usr/bin /usr/sbin -perm -4000 -ls //包含set uid
[root@newrain ~]# find /usr/bin /usr/sbin -perm -2000 -ls //包含set gid
[root@newrain ~]# find /usr/bin /usr/sbin -perm -1000 -ls //包含sticky
找到后处理的动作 ACTIONS:
-name "ifcfg*" | xargs
-name "ifcfg*" -print
-name "ifcfg*" -ls
-name "ifcfg*" -exec
[root@newrain ~]# find /etc -name "ifcfg*"
[root@newrain ~]# find /etc -name "ifcfg*" -print
[root@newrain ~]# find /etc -name "ifcfg*" -ls
[root@newrain ~]# find /etc -name "ifcfg*" -exec cp -rvf {} /tmp \;
[root@newrain ~]# find /etc -name "ifcfg*" -ok cp -rvf {} /tmp \;
[root@newrain ~]# find /etc -name "ifcfg*" -exec rm -rf {} \;
[root@newrain ~]# find /etc -name "ifcfg*" -delete
案例1: 分别找出file5 和除了file5的文件
[root@newrain ~]# mkdir dir1
[root@newrain ~]# touch dir1/file{1..20}
[root@newrain ~]# find /root/dir1 -name "file5"
[root@newrain ~]# find /root/dir1 ! -name "file5" !为取反
[root@newrain ~]# find /root/dir1 -name "file5" -o -name "file9" 即是file5又是file9
/root/dir1/file5
/root/dir1/file9
tar详解
打包
===打包===
[root@newrain ~]# tar -czf etc1.tar.gz /etc //-z 调用gzip
[root@newrain ~]# tar -cjf etc2.tar.bz2 /etc //-j 调用bzip2
[root@newrain ~]# tar -cJf etc3.tar.xz /etc //-J 调用xz
[root@newrain ~]# ll -h etc*
-rw-r--r--. 1 root root 8.7M 3月 12 00:08 etc1.tar.gz
-rw-r--r--. 1 root root 7.5M 3月 12 00:08 etc2.tar.bz2
-rw-r--r--. 1 root root 4.8M 3月 12 00:09 etc3.tar.xz
===解压,解包===
[root@newrain ~]# tar -tf sys.tar.xz
[root@newrain ~]# tar -xzvf etc1.tar.gz
[root@newrain ~]# tar -xvf etc1.tar.gz //无需指定解压工具,tar会自动判断
[root@newrain ~]# tar -xvf etc2.tar.bz2 -C /tmp //-C重定向到//tmp目录
[root@newrain ~]# tar xf etc3.tar.xz
参数解释
-c | --create 建立新的存档
-f | --file [HOSTNAME:]F 指定存档或设备
==解压zip
[root@newrain ~]# unzip xxx.zip