查询命令和压缩包以及管道技术
查找文件
find [查询的路径] [匹配模式] [匹配规则]
匹配模式:
-name:按照名字去匹配(寻找)
正则匹配:
*:匹配任意数量的字符,比如以什么开头,以什么结尾的任意字符
?:匹配一个数量的字符,比如以什么开头,以什么结尾的一个字符
------------------------------------------------------------------------------------
-type:按照文件类型匹配(寻找)
常见文件类型:
f:文件
d:文件夹
l:软连接
c:字符设备文件
b:块设备文件
s:socket文件
p:管道技术
-----------------------------------------------------------------------------------
-a并且(默认)两个条件都要满足
-o或者满足一个就行
-----------------------------------------------------------------------------------
-perm:按照文件权限匹配(寻找)
755 :文件夹默认权限(rwxr_xr_x)
644 :文件的默认权限(rw_r_ _r_ _)
-----------------------------------------------------------------------------------
-user:按照文件的属主来查询
-nouser:查询属主被删除了的文件
userdel[用户名]删除用户
-----------------------------------------------------------------------------------
-group:按照文件的属组来查询
-nogroup:查询属组被删除了的文件
groupdel[用户组名]删除用户组
-----------------------------------------------------------------------------------
-mtime:按照修改文件时间来查询
+:几天之前的文件+2 两天之前
-:几天之内的文件-2两天之内
stat[文件名]:查看文件的各种时间
access:访问文件时间
modify:修改文件时间
change:创建文件时间
-ctime:按照创建时间查询
-atime:按照访问时间查询
-----------------------------------------------------------------------------------
-size:按照文件大小查询
+:大于n的文件
-:小于n的文件
-----------------------------------------------------------------------------------
-exec:处理匹配之后的内容
find /tmp/ -ctime -3 -type f -exec rm -rf {} \;
-exec :后面直接跟语句
{} :代表查询到的内容的路径
\; : 固定搭配
-----------------------------------------------------------------------------------
xargs:将所有的内容格式化成一行
find /tmp/ -ctime -3 -type f | xargs -I {} rm -rf {}
-I :前面查询到内容的路径放在{}中
然后执行后面语句 前面{}查询到的内容放进去,后面的{}把内容拿过来 取出来
-----------------------------------------------------------------------------------
-c:解压至
tar -xf /tmp/etc.tar.gz -C /mnt
解压/tmp下的etc.tar.gz 解压至/mnt
-----------------------------------------------------------------------------------
案例1:查询出/etc目录下的hosts文件
[root@localhost tmp]
/etc/hosts
案例2:查询出/etc目录下的以ifcfg开头的文件
[root@localhost tmp]
/etc/sysconfig/network-scripts/ifcfg-lo
/etc/sysconfig/network-scripts/ifcfg-eth1
/etc/sysconfig/network-scripts/ifcfg-eth0
案例3:查询出/etc目录下以.conf结尾的文件
[root@localhost tmp]
案例4:查询出/etc目录下,文件名中包含host的文件有哪些
[root@localhost tmp]
案例5:查询出/etc目录下,所有的普通文件。
[root@localhost tmp]
案例6:查询出/etc目录下,所有的文件夹
[root@localhost tmp]
案例7:查询出/dev/目录中的所有的块设备文件
[root@localhost tmp]
案例8:查询出/dev目录中所有的字符设备文件
[root@localhost tmp]
案例9:查询出/etc目录中文件名包含nginx的普通文件
[root@localhost tmp]
案例10:查询出/root目录下,权限为755的文件
[root@localhost tmp]
案例11:查询出属主为test666的文件
[root@localhost tmp]
/root/1.txt
/root/2.txt
案例12:查询属主被删除了的文件
[root@localhost tmp]
案例13:查询属组为test666的文件
[root@localhost tmp]
/root/1.txt
案例14:查询属组被删除了的文件
[root@localhost tmp]
/root/2.txt
案例15:查询2天以前修改过的文件
[root@localhost tmp]
案例16:查询2天以内创建的文件
[root@localhost tmp]
案例17:查询2天以内访问过的文件
[root@localhost tmp]
案例18:查询大于1M的文件
[root@localhost tmp]
案例19:查询小于1M的文件
[root@localhost tmp]
案例20:查询在3天以内创建的文件,并删除
1.[root@localhost tmp]
2.[root@localhost tmp]
练习1:要求将所有3天内创建的普通文件加上.bak后缀
1.[root@localhost tmp]
2.[root@localhost tmp]
linux系统压缩包
gzip(常用):压缩软件,原文件删除,生成新压缩包文件,不能打包目录
gzip[压缩文件的路径]
解压:gzip -d [压缩包路径]
gzip比bzip压缩的更狠,压缩率更高
-----------------------------------------------------------------
bzip:压缩软件,原文件删除,生成新压缩包文件,不能打包目录
bzip2[压缩文件的路径]
解压:gzip2 -d [压缩包路径]
-----------------------------------------------------------------
tar (常用):打包文件,可以打包目录文件,不会删除原文件,
可以压缩,但是文件内容不会变小,会变大,因为有许多其他内容
所以tar一般和gzip或者bzip共同使用
tar[参数][压缩文件的路径]
参数:
-f : 指定压缩包名称 有其他参数时,他在最后面,
-c : 打包文件
-z : 指定使用gzip压缩,一般使用gzip压缩的文件都以.tar.gz作为扩展名
-j : 指定使用bzip2压缩,一般使用bzip2压缩的文件都以.tar.bz2作为扩展名
-v : 显示压缩包压缩的过程
-x : 解压,不需要指定压缩包的压缩类型,它会自动匹配压缩包的类型自行解压。
-P :当压缩包中存在根目录时,自动移除根目录 大写P
-t : 查看压缩包中的内容
-----------------------------------------------------------------
zip
练习:将/etc目录中的所有的普通文件压缩成/tmp/etc.tar.gz文件
[root@localhost tmp]
-czvPf:打包,指定gzip 压缩过程,移除根目录,指定压缩包名称
$(这里面先执行,相当于数学里的括号)
然后可以查看一下里面文件
[root@localhost tmp]
管道技术
传输数据,前一个命令执行的结果给下一个命令
案例一 :删除/tmp目录下,一天以内创建的文件
[root@localhost tmp]
案例二:将etc中所有的普通文件,复制到/tmp目录中
[root@localhost tmp]
记得加-I