文件查找和打包压缩

find 查找file

选项:-type 类型 :d 查找目录

           f 查找普通file

         l 查找链接file

         b 块设备file

         s 查找套接字file

         c 字符设备file

         p 查找管道file

 

   -name # file名

   -inum 根据节点编号查找

   -user 根据用户名查找

   -group 根据组用户查找

   -nouser 查找没有属主的file

   -links # 连接数为#的file

   -regex “pattern” 以“pattern”匹配整个file路径名

   -nouser 查找没有属主的file

   -nogroup 查找没有属组的file 

   -gid 查找属组为指定的GID号的file

   -UID 查找属主为指定的GID号的file

   -empty查找空间或目录

   -a 多个条件表示并且

   -o表示或者

   -not (  !)表示“非”

   -size  # 根据file大小来查找

   -atime 根据访问时间查找

   -mtime 根据修改时间查找

   -ctime 根据file的变化来查找

   -perm  ### 根据权限查找

   -MODE每一类对象都必须同时拥有指定权限,与关系

   0表示不关注

   -print 默认的处理动作,显示至屏幕

   -ls 命令格式输出

   -fls 查找的所有file的长格式信息保存至指定file夹中,相当于-ls > file

   -delete 删除查找到的file

   -ok cmd {} \; 对查找到的每个file执行cmd 指定的命令,对于每个file执行命令之前,都会交互式要求用户确认

   -exec cmd {} \; 对查找到的每个file执行由cmd指定的命令

    {} 用于引用查找的file名称自身

xargs:由于很多命令不支持管道|来传递参数,xargs用于产生某个cmd的参数,xargs可以读入stdin的数据,并且空格符或回车符将stdin的数据分隔符成为参数

 注意:许多命令不能接受过多参数,xargs命令可以解决

    file名或者其他意义的名词内含有空格符的情况

   选项:-n# 指定输出时每行输出的列数

      -d 自定义分隔符

      -0(零) 选项 与print0 搭配使用

print0的作用就是让各个file名不在按照空格作为结束标志,当使用null未作结尾的标志,在使用xargs时依然默认时使用空格当做多个file之间的分割,当使用print0将filename之间的分隔符改变了,xargs还不知道,所以这个-0(零)选项相当于就是用来告诉xargsfile的结束标志改成null      

 

 

gzip和gunzip   :压缩和解压缩

来自于gzip包  对应的的file是.gz后缀

格式:gzip option... file ...

  选项:-k 保留源file

     -d 解压缩,相当于gunzip

      -c 结果输出至标准输出,保留原file不改变

    -# 指定压缩比,取值1-9,值越大压缩比越大

bzip2和bunzip2  压缩和解压缩

  来自于bzip2包   对应的file时.bz2后缀

格式:baip2 option... file...

选项:-k 保留原file  

   -d 解压缩

   -c 结果输出至标准输出,保留原file不改变

   -# 1-9,压缩比,默认为9  

xz和unxz   压缩和解压缩

来自于xz包  对应的file是.xz后缀

格式 :xz option... file ...

选项:-k 保留原file

   -d 解压缩

   -c 结果输出至标准输出,保留原file不改变

 

zip和unzip

zip可以实现打包目录和多个file成一个file并压缩,但可能会丢失file属性信息,如:所有者和组信息,一般建议使用tar代替

对应的file是(.zip后缀)

选项:

-A:调整可执行的自动解压缩file

-b:<工作目录>指定暂时存放file的目录

-c :替每个被压缩的file加上注释

-d:从压缩file内删除指定的file

-D:压缩file内不建立目录名称

-f:更新现有的file

-F:尝试修复已损坏的压缩file

-g:将file压缩后附加在既有的压缩file之后,而非另行建立新的压缩file。

-i:<范本样式>只压缩符合条件的file

-j:只保存file名称及其内容,而不存放任何目录名称。

-J:删除压缩file前面不必要的数据

-k:使用MS-DOS兼容格式的file名称

-l:压缩file时,把LF字符换成LF+CR字符

-L:显示版本信息

-m:将file压缩并加入压缩file后,删除原始file,即把file移到压缩file中

-n<字尾字符串>不压缩具有特定字尾字符串的file

-o:以压缩file内拥有最新更改时间的file为准,将压缩file的更改时间设成和该file相同

-q:不显示指定执行过程

-r:递归处理,将指定目录下的所有file和子目录一并处理 (压file夹必须加r)

-S:包含系统和隐藏file

-T:检查备份file内的每个file是否正确无误

-X:不保存额外的file属性

-z:替压缩file加上注释

-p:表示管道

-e:指定密码(交互式)

-P:非交互式指定密码

在这里(-)横线表示标准输入流

 

打包和解包

tar  :可以对目录和多个file打包一个file,并且可以保留压缩,保留file属性不丢失,常用于备份功能,推荐大家使用。

对应的file时.tar后缀

选项: -A或--catenate :新增file到已存在的备份file

    -b<区块数目>或--blocking-factor=<区块数目>设置每笔记录的区块数目,每个区块大小为12Bytes。

    -B或--read-full-records:读取数据时重设区块大小

    -c或--create:建立新的备份file(打包)

    -C<目的目录>或--directory=<目的目录>切换到指定的目录(把目录存放在哪)

    -d或--diff或--compare :对比备份file内和file系统上的file的差异

     -f<备份file>或--file=<备份file>指定备份file (打包成一个file)

       -F<scriptfile>或--info-script=<scriptfile>每次更换磁带时,就执行指定的scriptfile

    -g或--listed-incremental处理GNU格式的大量备份

    -G或--incremental:处理旧的GNU格式的大量备份

    -h或--dereference:不建立符号链接,直接复制链接所指向的原始file

    -i或--ignore-zeros:忽略备份file中的0Byte区块,也就是EOF

    -K或--keep-old-files:解开备份file时,不覆盖现有的file

    -k<file>或--starting-system:从指定的file开始还原

    -l或--one-file-system:复制的file或目录存放的file系统,必须于tar指令执行时所处的file系统相同,否则不予复制

    -L<媒体容容量>-tape-length=<媒体容量>设置存放媒体的容量,单位以1024Bytes计算

    -m或--modification-time:还原file时;不变更file的更改时间

    -M或--multi-volume在建立,还原备份file或列出其中的内容时,采用多卷册模式

    -N<日期格式>或--newer=<日期时间>只将较指定日期更新的file保存到备份file里

    -o:将资料写入备份file时使用v7(音频和视频)格式

    -O:把从备份file里还原的file输出到标准输出设备

       -p:用原来的file权限还原file

     -P:file名使用绝对名称,不移除file名称前的“/”号

     -r :新增file到已存在的不备份file的结尾部分

     -R:列出每个信息在备份文中的区块编号

     -s:还原file的顺序和备份file内的存放顺序相同

     -S:倘若一个file内含大量的连续0字节,则将此file存成稀疏file

      -t:列出备份file的内容 (预览)

      -T:<范本样式>指定范本file,其中含有一个或多个范本样式,让tar解开或建立符合设置条件的file

      -u:位置交换备份file内的file更新的file

      -U:解开压缩file还原file之前,先解除file的连接

      -v:显示指令的执行过程 (显示过程)

      -V<卷册名称>,建立使用指定的卷册名称的备份file

      -w:遭遇问题是先询问用户

      -W:写入备份file后。确认file正确无误

      -x:从备份file中还原file (解包)

      -X<范本样式>:指定范本file,其内涵有一个或多个范本样式,让tar排除符合设置条件的file

       -j:通过bzip2压缩指定file

    -J:通过xz压缩指定file

    -z或--gzip或ungzip,通过gzip指令处理备份file 

    -Z或--cpmpress或--uncompress,通过compress指令处理备份file

    --after-date=<日期时间>:此参数的效果和指定-N参数相同

    -atime-preserve:不变更file的读取时间

    --backup:移除file先备份

    --checkpoint:读取file时列出目录名称

    --concatenate:此参数的效果和指定-A参数相同

    --confirmation:此参数的效果和指定的-w参数效果相同

    --delete:从备份为你按中删除指定的file

    --exclude=<范本样式>排除符合范本样式的file

    --group=<群组名称>,把加入设备file中的file的所属群组设成指定的群组

    --ignore-failed-read:忽略数据读取错误,不中断程序的执行

    --new-volume-script=<scriptfile>此参数的效果和指定-F参数相同

    --newer-mtime:只保存更改过的file

    --no-recursion:不做递归处理,也就是指定目录下的所有file及子目录不予处理

    --null:从null设备中读取file名称

    --numeric-owner:以用户识别码即群组识别码取代用户名称和群组名称

    --owner:把加入备份file中的file的拥有者设成指定的用户

    --posix:将数据写入备份file时使用posix格式

    

当然这么多其中需要掌握最重要的几项:-C,-f,-x,-v,-t,-z,-j

这么多压缩命令:可以选用:推荐大家如果想要快点的xz,bzip2,xz,gzip

当然压缩的效率高的当然时间也就慢,比如xz就比较高效,但是压缩时间长,不建议大家使用

bzip2这个压缩也是比较高效的,如果觉得网速或者赶时间的话不建议

gzip这个效率和压缩时间中等,建议大家使用gzip。

tar命令 一般需要掌握cf(打包成一个文件),tf(预览文件),

 

split :可以分割一个文件为多个文件

选项:-b  # 指定分为多大的文件

 

 cpio :是历史悠久的打包和解包工具,不过目前也已经较少使用

cpio命令是通过重定向的方式将文件进行打包备份,还原恢复的工具,它还可以解压以”cpio“或者“tar”结尾的文件

cpio 【选项】> 文件名或者设备名

cpio 【选项】< 文件名或者设备名

选项:-o ouput模式,打包,将标准输入传入的文件名打包后发送到标准输出

   -i  input模式,解包,对标准输入传入的打包文件名解包到到当前文件夹

   -t 预览,查看标准输入传入的打包文件中包含的文件列表

   -O filename输出到指定的归档文件名

    -A 向已存在的归档文件中追加文件

    -I 对指定的归档文件名解压

    -Ffilename 使用指定的文件名替代标准输入或输出

     -d 解包生成目录,在cpio还原是,自动的建立目录

     -v 显示打包过程中文件名称

 

 

 

 

 

 

 

 

 

   

 

posted @   家购诗  阅读(113)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
点击右上角即可分享
微信分享提示