locate
查找文件 locate 文件名 他是模糊匹配的而且不是实时的 查询不到你刚刚建立的文件,他是某个时间点去扫描的,所以我们可以去更新一下updatedb 然后再去查找 就会看到刚刚建立的文件
etc/updatedb.cong 文件是配置 更新的时候不去那些文件下去找,比如tmp文件 就不去搜索 你去掉了就会搜索
- -i 不区分大小写的搜索
- -n N 只列举前N个匹配项目
- -r 使用基本正则表达式
- Locate –r “.jpg$”
- Locate –r “.(jpg|png)$”
find 最厉害的 是实时查找的 可有很多筛选选项 比如文件类型 文件大小 或在一个目录下找
find 绝对路径/root -name file 查找root 文件夹下名字是file的文件
- -regex “PATTERN”:以PATTERN匹配整个文件路径,而非文件名称 也可以使用正则表达式
- -name c*.conf 查找所有已c 开头的 .conf结尾的文件
- -type d 查找文件类型是目录的
- -user student 查找文件拥有者是student 的文件
- -perm 660 查找权限是660的 文件 -perm -660 只要满足这个权限 都行
根据类型 -type TYPE • f: 普通文件 • d: 目录文件 • l: 符号链接文件 • s:套接字文件 • b: 块设备文件 • c: 字符设备文件 • p: 管道文件
与:-a 或:-o 非:-not !
文件大小 -size
如:-6k 表示[0,5k]
如:+6k 表示(6k,∞)
处理动作
-ok COMMAND {} ; 对查找到的每个文件执行由COMMAND指定的命令,对 于每个文件执行命令之前,都会交互式要求用户确认
-exec COMMAND {} ; 对查找到的每个文件执行由COMMAND指定的命令
find /root -name file -exec rm -rf {} ; //-exec 方式连接 找到文件之后的操作 {}是占位符 表示前面找到的文件 ; 表示结束
find /root -name file -ok rm -rf {} ; //ok方式连接 是交互式的 他会问你 你要删除**吗
find /date –name “f*” –a –type f //-a 是并且的意思 既是f开头又是文件的 (-a 可以省略)
find /date –name “f*” –o –type f //-o 是或者的意思 要么是f开头要么是文件的
find /date –name “f*” –o –type f –ls //你本意是想找到之后ls出来,但是现在由于 &&的优先级高于||,所以出现错误 正确应该是
find /date (–name “f*” –o –type f )–ls 或者
find /date –name “f*”-ls –o –type f –ls
find /home –not ( -user wang –o –user mage ) –ls //找出来 所有者不能是wang和user的东西
find /var/log –size +10k –exec cp {} /tmp/test/{}.bak ;
find /data –type f -perm 644 -name “*.sh” –exec chmod 755 {} ; //查找/data下的权限为644,后缀为sh的普通文件,增加执行权限
find -name “*.conf” -exec cp {} {}.orig ; //备份配置文件,添加.orig这个扩展名
xargs
由于很多命令不支持管道|来传递参数,xargs用于产生某个命令的参数,xargs 可以读入 stdin 的数据,并且以空格符或回车符将 stdin 的数据分隔成为参数
echo user{1,,10} | xargs –n1 useradd 一条命令创建10个用户// xargs 把前面命令的输出 一次传一个给 后面的命令当参数
find –name “f*.txt” –print0 |xargs -0 rm //找到这些文件 不以 “ ”作为分隔符 ,因为如果一个文件名中含有” ” 那就会搞混了。
Xargs //把标准输出 给到第二个命令的参数
Echo user{1..10} | xargs useradd //不加的话相当于 一次性给了 useradd 运行不了,
echo user{1..10}|xargs -n1 useradd //useradd 只能识别一个用户,所以一次传一个
压缩
tar -cvf test3.tar 444/ 1126/ 2019-11-08.log 打包 后面文件随便跟
tar -xvf test3.tar //解包
然后将tar包 压缩成 gzip ; gzip test3.tar 源文件会没有 现在只有 test3.tar.gz 解压 gzip -d test3.tar.gz 同样源文件没有,现在只有test3.tar
将tar包 压缩成 bz2 ;bzip2 test3.tar 源文件会没有 现在只有 test3.tar.bz2
bzip2 -dk test3.tar.bz2 将其解压,解压完之后,源文件不删除,现在有 test3.tar.bz2 与 test3.tar
gzip 将文件压缩成 .gz格式 -d 选项可以解压缩 (源文件都会删除)
bzip2 将文件压缩成 .bz2格式 -d 选项可以解压缩 -k 选项可以保留源文件
xz [OPTION]... FILE ...
- -k keep, 保留原文件
- -d 解压缩
- -# 压缩比,取值1-9,默认为6
- unxz file.xz 解压缩
zip/unzip
打包压缩 zip –r /backup/sysconfig /etc/sysconfig/
解包解压缩 unzip sysconfig.zip
tar -zcvf *.gz .......... 既打包又压缩
tar -zxvf 文件名字 -C 路径 解压这个文件 到哪里
tar -jcvf *.bz2 .......... 既打包又压缩 格式是bz2
tar -jxvf 文件名字 -C 路径 解压这个文件 到哪里
tar [OPTION]...
(1) 创建归档,保留权限
tar -cpvf /PATH/FILE.tar FILE...
(2) 追加文件至归档: 注:不支持对压缩文件追加
tar -r -f /PATH/FILE.tar FILE...
(3) 查看归档文件中的文件列表
tar -t -f /PATH/FILE.tar
(4) 展开归档
tar -x -f /PATH/FILE.tar
tar -x -f /PATH/FILE.tar -C /PATH/
(5) 结合压缩工具实现:归档并压缩
-j: bzip2, -z: gzip, -J: xz