文件查找和压缩
文件查找
locate:非实时查找,数据库查找
find:实时查找
locate
特点:
1,查找速度快
2,模糊查找
3,非实时查找
locate查询系统上预建的文件索引数据库
/var/lib/mlocate/mlocate.db
updatedb命令可以更新数据库
i,忽略大小写
-n N,只列前几个
示例:locate -in 1 File10
-r,使用基本正则表达式
updatedb,更新数据库
find
特点:
1,查找速度略慢
2,精确查找
3,实时查找
4,可能只搜索用户具备读取和执行权限的目录
语法:find [option] [查找路径] [查找条件] [处理动作]
查找路径默认是当前目录
查找条件,可以以文件名,大小,类型,权限等
处理动作,对符合条件的文件做操作,默认输出至屏幕
指搜索层级:
-maxdepth level:最大搜索层级
find /etc/ -maxdepth 1 -name passwd
-mindepth level:
示例:find / -maxdepth 9 -mindepth 6 -name home
先梳理目录内的文件,再处理指定目录
-depth:先处理目录内的文件,再处理指定目录
根据文件名和inode查找
-name,-iname(忽略大小写),inum n(按照inode查找)
-samefile name 相同inode号的文件
示例:find -samefile abc,查找与abc文件inode相同的文件
-links n 链接数为n的文件
-regex “PATTERN”:以PATTERN匹配整个文件路径,而非文件名称
示例:find /data/ -regex ".*.sh",.*表示匹配所有路径
根据属主,属组查找
-user USERNAME;-group GROUPNAME;-uid UserID;-gid GroupID;-nouser;-nogroup;
根据文件类型查找
-type TYPE:
f:普通文件,d:目录文件,l:符号链接文件,s:套接字文件
b:块设备文件,c:字符设备文件,p:管道文件
示例:find /dev/ -type b
空文件或目录
-empty:示例--find /data/ -type f -empty
查找条件:
与:-a
或:-o
非:-not !,示例:find /data -not -name file10;find /data ! -name file10
德·摩根定律:
(非 A) 或 (非 B) = 非(A 且 B)
(非 A) 且 (非 B) = 非(A 或 B)
示例:
!A -a !B = !(A -o B)
find / -not -user wang -a -not -name root
find / -not \( -user wang -o -user root \)
!A -o !B = !(A -a B)
find / -not -nouser -o -not -user root
find / -not \( -nouser -a -user root \)
排除目录
-path,配合-prune使用
查找/etc/下,除/etc/sane.d目录的其它所有.conf后缀的文件
find /etc -path /etc/sane.d -a -prune -o -name "*.conf"
查找/etc/下,除/etc/sane.d和/etc/fonts两个目录的所有.conf后缀的文件
find /etc \( -path "/etc/sane.d" -o -path "/etc/fonts" \) -a -prune -o -name "*.conf"
根据文件大小查找
-size [+|-] k,M,G,c(byte)
-size 5M:表示(4M,5M],大于4M小于等于5M的文件
-size -5M:表示[0,4M],0到4M,包含4M的文件
-SIZE +5M:表示(5M,无穷大),大于5M,不包含5M的文件
根据时间戳查找
以天为单位
-atime [+|-] #,
5:表示4天之前,到5天之前的变化的文件,不包含5天
+5:表示5天以前有变化的文件,包含5天
-5:5天之内时间戳有变化的文件
-mtime:
-ctime:
以分钟为单位
-amin,-mmin,-cmin
根据权限查找
-perm [/|-] MODE,7版本之前为[+|-]
444:表示精确查找,权限为444的文件
/444:(u,g,o)中只要有一个有读权限即可
-444:(u,g,o)中必须都有读权限
处理动作:
-ls:类似于对查找到的文件执行“ls -l”命令
find /data/ -name file1 -ls
-delete:删除查找到的文件
find /data/ -name file0 -delete
-fls file:查找到的所有文件的长格式信息保存至指定文件中
find /data/ -name file1 -fls file0
-ok COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令,对于每个文件执行命令之前,都会交互式要求用户确认
find /data -name file0 -ok rm {} \;
-exec COMMAND {} \; 对查找到的每个文件执行由COMMAND指定的命令
find /data -name file1 -exec cat {} \;
{}: 用于引用查找到的文件名称自身
find传递查找到的文件至后面指定的命令时,查找到所有符合条件的文件一次性传递给后面的命令
参数替换:xargs
ls | xargs rm
find /bin/ -perm -7000 | xargs ls -Sl
文件压缩
compress,uncompress...Z
-d:解压缩,相当于uncompress
-c:结果输出至标准输出,不删除原文件
-v:显示详情
compress -c passwd > passwd.Z
zcat file.Z:不显式解压缩的前提下查看文件内容
gzip,gunzip...gz
-#:可以指定压缩比,1-9,值越大,压缩比越大,默认为6
gzip -c messages > messages.gz
gzip -c -d messages.gz > messages
gunzip messages.gz > messages
bzip2,bunzip2,bzcat...bz2
-k 保留原文件
bzip2 -c passwd > passwd.bz2
xz/unxz/xzcat...xz
xz压缩比最高,可能速度会慢
zip,unzip...zip
zip -r 可以压缩文件夹
zip -r scripts .
文件打包
tar工具
-c:创建
-p:保留权限
-v:显示详情
-f:后面接打包后的文件名
tar -cvpf etc.tar etc
-r:追加文件至归档,不支持对压缩文件追加
tar -rf etc.tar passwd,追加passwd到etc.tar
-t:查看归档文件中的文件列表
tar -tf etc.tar
-x:展开归档
tar -xf etc.tar
归档并压缩:
-j--bzip2
-z--gzip
-J--xz
tar -zcvf etc.tar.gz etc
排除文件:
-exclude
tar -zcvf etc.tgz --exclude=etc/passwd etc
split
split -b 5M etc.tgz etc-1
合并:cat etc-1* > etc.tgz
cpio:复制文件从或到归档
cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它可以解压以“.cpio”或者“.tar”结尾的文件
cpio [选项] > 文件名或设备名
cpio [选项] < 文件名或设备名
选项:
-o:将文件拷贝打包成文件
-O filename:输出到指定的归档文件名
-A:追加
-i:解包
-I filename:对指定的归档文件名解压
-t:预览
-F filename:使用指定的文件名代替标准输入或输出
-d:解包生成目录
将查找到的目录打包为etc.cpio
find -type d|cpio -ov > etc.cpio
将passwd追加至etc.zpio
find /data/ -maxdepth 1 -name passwd |cpio -oA -F etc.cpio
内容预览
cpio -tv < etc.cpio
cpio -idv < etc.cpio
文件查找与压缩
猜你喜欢
转载自www.cnblogs.com/jkfd-zlgs/p/11761249.html
今日推荐
周排行