文件查找和打包压缩
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 显示打包过程中文件名称
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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)