文件查找 find
find 查找位置 查找条件 值 动作(默认动作为 -print 打印查找信息)
查找条件
-name 按文件名字查找
-iname 按文件名字查找(不区分大小写)
实例:find /etc/ -name "*.conf"
-type 按文件类型查找
普通文件 f;目录文件 d;链接文件 l;字符设备文件 c;
块设备文件 b;套接字文件 s; 管道文件 p;
-size文件大小
+5M 大于5M;5M 等于5M;-5M 小于5M
-perm 按权限查找
find /tmp/ -perm 644 查找文件权限是644的文件
find /tmp/ -perm -444 查找文件权限包含444的文件
-atime 查找指定时间段内访问过的文件。访问时间指的是文件最后一次被读取或执行的时间。
-atime +7表示查找7天前访问过的文件
-ctime 查找指定时间段内更改过属性或状态的文件。更改时间指的是文件元数据(如权限、所有者等)最后一次被修改的时间。
-ctime -30表示查找30天内更改过属性或状态的文件
-mtime 查找指定时间段内修改过内容的文件。修改时间指的是文件内容最后一次被修改的时间。
-mtime 0表示查找当天内修改过内容的文件
-user 按属主查找
-group 按属组查找
-regex 按正则表达式查找
find /etc/ -regex “.*eth[0-9]” 查找 eth前是任意多个字符,eth后是数字0-9其中之一的文件
正则表达式
.* 任意多个字符
[0-9] 0-9任意一个字符
[a-z] a-z任意一个字符
[A-Z] A-Z任意一个字符
[0-9a-z] 0-9和a-z任意一个字符
+ 字符多次出现,跟在[]后
例如:[0-9]+ 0-9任意多个字符
-a 与运算,and,放在两个条件之间
-o 或运算,or,放在两个条件之间
find /opt/ \(-user user01 -o -group cw\) -ls
列出/opt/下属主是user01或属组是cw的文件的详细信息
在多个条件后对处理结果执行动作时,需要将多个条件用括号括起来
\ 转义符,括号在终端的含义是子shell,加转义符使其代表括号
-not/! 取反
find /tmp/ ! -name “file1” 查找/tmp/目录下名字不是file1的文件
动作
-print 打印查找信息
-ls 查看查找文件的详细信息
-delete 查找之后删除文件
-exec 对查找到的文件执行操作
find /tmp/ -name “*.sh” -exec mv {} /opt \;
查找/tmp/目录下文件名以 .sh 结尾的文件,并将其移动到/opt/ 目录下
{} 用来承接find命令所查找到的结果
\; -exec的固定结束符
-ok 对查找到的文件执行操作,和-exec相同但是需要手动y确定
xargs 给其他命令传递参数的一个过滤器,也是组合多个命令的一个工具
查找tmp目录下以.sh结尾的文件并移动到opt目录下
find /tmp/ -name “*.sh” | xargs -i mv {} /opt
查找tmp目录下以9结尾和0结尾的文件拷贝到opt目录
find /tmp/ \(-name “*9” -o -name “*0”\) | xargs -i cp {} /opt/
文件的打包压缩与解压缩
压缩包的格式
Windows:rar zip
Linux:zip tgz tar.gz tar.xz tar.bz2
tar包
打包压缩
tar -cf 压缩包路径及名字 需要打包的文件路径
可以在压缩包的名字上直接写压缩包的格式,就可以自动调用相关的格式参数
文件后缀只是 .tar 时,只是打包文件,并不是压缩,
文件后缀为 tar.* 时,才是打包压缩
文件查找结合打包压缩时,使用tar -rf
压缩片格式参数:
-z 调用gzip,打包成tar.gz:tar -czf etc1.tar.gz /etc
-j 调用bzip2,打包成tar.bz2:tar -cjf etc2.tar.bz2 /etc
-J 调用xz,打包成tar.xz:tar -cJf etc3.tar.xz /etc
解压缩
tar xvf 压缩包名 -C 指定路径
x:解压的参数
v:显示解压的过程(可去)
f:指定存档或设备
-C:指定位置解压
zip包
打包压缩
直接在Windows里打包压缩不香吗?
解压缩
unzip 压缩包名
指定位置解压缩:unzip -d 指定的位置 压缩包名
解压单纯的 .gz 格式的压缩文件:gunzip
远程拷贝
scp -r 文件 目的ip地址:目的路径
零碎文件比较多时,可以先打包压缩之后再拷贝
rsync命令
是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快
格式:
rsync -avz 源user@源ip:源路径 目标user@目标ip:目标路径
[参数]
-a 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD
-v 详细模式输出
-z 对备份的文件在传输时进行压缩处理