Linux系统配置及服务管理_第08章_文件查找

一、简介

  • which :命令查找

  • find: 文件查找,针对文件名

  • locate:文件查找,依赖数据库

二、命令文件查找which

[root@localhost ~]#which ls	//查找ls 命令的位置
alias ls='ls --color=auto'
        /usr/bin/ls

或者
[root@localhost ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

三、locate

[root@localhost ~]# locate hosts    //locate查找文件hosts文件
[root@localhost ~]# updatedb    //更新locate数据库

四、find

语法:

find  [path...]   [options]       [expression]  [action]
命令   路径         选项             表达式        动作
项目Value
-name filename按名称查找
-perm按执行权限来查找
-user username按文件属主来查找
-group groupname按组来查找
-mtime -n +n按文件更改时间来查找文件,-n指n天以内,+n指n天以前
-atime -n +n按文件访问时间来查找文件,-n指n天以内,+n指n天以前
-ctime -n +n按文件创建时间来查找文件,-n指n天以内,+n指n天以前
-nogroup查无有效属组的文件,即文件的属组在/etc/groups中不存在
-nouser查无有效属主的文件,即文件的属主在/etc/passwd中不存
-type b/d/c/p/l/f查是块设备、目录、字符设备、管道、符号链接、普通文件
-size n[c]按文件大小查找的文件
-mount查文件时不跨越文件系统mount点
-follow如果遇到符号链接文件,就跟踪链接所指的文件
-prune忽略某个目录

1.按文件名

find    /etc      -name       "hosts"
find    /etc      -iname      "hosts" 
find    /etc      -iname      "hos*"  //-i忽略大小写

2.按文件大小

find    /etc -size      +5M   文件大小>5M
find    /etc -size       5M   文件大小为5M
find    /etc -size      -5M   文件大小<5M

find / -size +3M -a -size -5M  查找/下面大于3M而且小于5M的文件
find / -size -1M -o -size +80M 查找/下面小于1M或者大于80M的文件
find / -size -3M -a -name "*.txt" 查找/ 下面小于3M而且名字是.txt的文件
注:
-a:add
-o:or

3.按时间查找

按时间找(atime,mtime,ctime)
-atime=  access访问时间
-mtime = modify改变时间  内容修改时间会改变
-ctime =change修改时间   属性修改时间会改变

-amin  #分钟
-mmin
-cmin
find /opt -mtime +5		   修改时间5天之前
find /opt -atime +1        访问时间1天之前
find . -mtime -2		   修改时间2天之内

find . -amin +1            访问时间在1分钟之前
find /opt -amin -4         访问时间在4分钟之内
find /opt -mmin -2         修改时间在2分钟之内

4.按文件属主、属组找

查找当前目录及子目录下属于dba用户组的文件:
find . -group dba -print

查找当前目录及子目录下没有有效用户组的文件:
find . -nogroup -print

5.按文件类型

find /dev -type f	            f普通文件
find / -type f -size -1M -o -name "*.txt"

find /dev -type d	            d目录
find /etc/ -type d -name "*.conf.d"

find /etc -type l	            l链接

find /dev -type b	            b块设备
find /dev/ -type b -name "sd*"

注:f普通文件 b块设备文件 d目录 l链接

6.按文件权限

find . -perm 644               .是当前目录    精确查找644  
find /usr/bin  -perm -4000      包含set uid
find /usr/bin  -perm -2000      包含set gid
find /usr/bin  -perm -1000      包含sticky

7.找到后处理的动作 ACTIONS

找到后默认是显示文件

find . -perm  715  -print        文件名
find . -perm  715  -ls           文件属性

找到后删除

find /etc -name "775*" -delete

找到后复制(-exec为execution执行)

find  /etc  -name   "ifcfg*"   -exec  cp  -rvf  {}  /tmp    \;
{}为前面查找到的内容,\; 格式

扩展

-exec:参数是一个一个传递的,传递一个参数执行一次命令。
xargs:将前一个命令的标准输出传递给下一个命令,作为它的参数转换成下一个命令的参数列表。
===============
1、exec 每处理一个文件或者目录,它都需要启动一次命令,效率不好; 
2、exec 格式麻烦,必须用 {} 做文件的代位符,必须用 \来转义; 作为命令的结束符,书写不便。 
3、xargs不能操作文件名有空格的文件;

综上,如果要使用的命令支持一次处理多个文件,并且也知道这些文件里没有带空格的文件,
那么使用 xargs比较方便; 否则,就要用 exec了。

[root@youngfit ~]# touch {1..10000}.txt
[root@youngfit ~]# time find ./ -type f -name '*.txt' |xargs rm -rvf
real    0m0.203s
user    0m0.016s
sys    0m0.186s
[root@youngfit ~]# touch {1..10000}.txt
[root@youngfit ~]# time find ./ -type f -name '*.txt' -exec rm -rvf {} \;
real    0m8.074s
user    0m3.717s
sys     0m4.294s

一、xargs的使用
(1)将前一个命令的标准输出传递给下一个命令,作为它的参数,xargs的默认命令是echo,空格是默认定界符
(2)将多行输入转换为单行

二、exec的使用
exec参数是一个一个传递的,传递一个参数执行一次命令。

总结:xargs一次将参数传给命令,可以使用-n控制参数个数;exec参数是一个一个传递的,传递一个参数执行一次命令。

[root@youngfit tmp]# find ./ -type f -name 'file*' |xargs -n 1 -i  rm -rvf {} 
已删除"./file1"
已删除"./file2"
已删除"./file4"
已删除"./file5"

五、文件打包及压缩

简介:
tar命令是Unix/Linux系统中备份文件的可靠方法,几乎可以工作于任何环境中,它的使用权限是所有用户。建议针对目录

window打包压缩工具:

结尾:  .rar     .zip
打包工具:winrar zip 7zip 好压

linux打包压缩工具:

结尾:.tar.gz      .tar.bz2     .zip
工具:gzip和tar(打包)

bzip2(只压缩)

1、打包

语法:tar 选项 压缩包名称 源文件

[root@localhost ~]#tar   -cf     etc.tar           /etc
[root@localhost ~]#tar   -czvf   etc-gzip.tar.gz   /etc/      //z是gzip
[root@localhost ~]#tar   -cjf    etc-bzip.tar.bz   /etc/      //j是bzip
[root@localhost ~]#tar   -cJf    etc-xzip.tar.xz   /etc/      //J是xzip
[root@localhost ~]#ll -h etc*
-rw-r--r--. 1 root root  11M 10月 14 10:07 etc-gzip.tar.gz
-rw-r--r--. 1 root root 8.9M 10月 14 10:08 etc-bzip.tar.bz
-rw-r--r--. 1 root root 7.6M 10月 14 10:08 etc-xzip.tar.xz

c :create  创建
v :verbose 详细信息
f :file  文件

注:压缩速度和压缩体积成反比。

2、解压

查看(并没有解压)

[root@localhost ~]#tar -tf       etc.tar             //t查看f文件名

解压缩

[root@localhost ~]# tar xf   etc3.tar.xz
[root@localhost ~]# tar -xvf etc2.tar.bz2 -C /tmp    //-C重定向到/tmp目录

x: extract  解压缩  解包
-C: 指定解包路径
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值