06笔记:文件查找、压缩和归档

来源:第7章

笔记:

- 文件查找:

	find和locate:
		locate:系统在空闲时自动构建数据库(周期性任务);
				updatedb:手动更新数据库,大量消耗系统资源,线上系统谨慎使用;
				locate keyword
			数据库查找
			非实时查找
			模糊查找
			查找速度快
		find:遍历指定路径下的文件系统完成查找
			实时查找
			查找速度慢
			精确查找
			find [option]..[查找路径] [查找条件] [查找动作]
			查找条件:
				根据文件或目录名查找:
					-name:支持使用glob;
					-iname:忽略大小写,支持glob;
					-regex “pattern”:按模式查找;
			
				根据属主、属组查找:
					-user :
					-group:
					-uid:
					-gid:
					-nouser:没有属主的文件;
					-nogroup:没有属组的文件;
				根据文件类型查找:
					-f,-d,-l,等
				组合条件查找:
					-a,-o,!,-not
				根据文件大小查找:-size 【+|1】#【k|G|M】
					-#:表示(0,#-1]的大小范围;
					#:表示(#-1,#]的大小范围;
					+#:表示(#,oo)的大小范围;
					Tip:不带单位时,据测好像1表示512byte;
				根据时间戳查找:
					单位为天:
						-atime,-ctime,-mtime
					单位为分钟:
						-amin,-cmin,-mmin
					#:[#,#+1)
					-#:(0,#)
					+#:[#+1,oo)
					Tip:和大小的查找稍微不同:
						#为2,时间表示区间[2-3)不满3,大小表示(1-2]不满2;
						#为-2,时间表示区间(0,2)不满2,大小表示(0,2)不满2;
						#为+2,时间表示区间[3,oo)等于大于3,大小表示[2,oo)等于大于2;
				根据权限查找:-perm 【/|-】mode,0表示该位置不作要求,+被废弃
					mode:精确匹配每一位权限;
					/mode:文件或目录至少有一位权限匹配给定的mode;
					-mode:文件或目录必须包含给定mode的全部权限;
				处理动作:
					-print:默认的动作,显示至屏幕;
					-ls:类似对查找到的文件执行‘ls -l’操作
					-delete:删除查找到的文件;
					-fls /path/to/somewhere:将查找文件的长格式信息保存至指定文件;
					-ok command {} \;:对查找到的文件执行后面的命令;需要确认
					-exec command {} \;:同上,不需确认;
						Note:find查询是先完成查找然后将所有结果一次性传递给后面的命令,
							部分命令无法接受过多参数时会崩溃,以下方法可避免:
							find | xargs command
						Note:{},表示引用find查找结果的一个对象;
							例,find -nouser -exec mv {} {}.old \;

-压缩和归档:

文件压缩	:gzip,bzip2,xz,zip
gzip、gunzip、zcat:
	gzip:
		Usage:gzip 【options】file。。。
		Explain:只能压缩文件,目标为目录时使用-r选项递归单独压缩其下的每个文件;
				 默认删除原文件,仅保留压缩文件;
				 压缩文件默认格式为*.gz;
				 压缩比较小,压缩速度较快;
		-# :指定压缩比【1-9】;默认为6
		-d:解压缩文件,文件名必须以.gz, -gz, .z, -z, _z,.Z结尾;
		-c:压缩或解压缩文件至标准输出
			e,g:gzip -c sfile > dfile ,压缩sfile至dfile,并保留sfile;
				  gunzip -c dfile > sfile,解压缩dfile至sfile,并保留dfile;
		-f:强制压缩或解压缩;(当压缩或解压缩文件已存在时不提示是否覆盖);
		-l:显示文件压缩前后大小和压缩比率;
		-q:忽略警告信息;
		-r:目标为目录时,递归单独压缩或解压缩目录下每个文件;
		-S .suf:压缩时以指定后缀.suf代替默认后缀.gz;
		-t:测试压缩文件的完整性;
		-v:压缩或解压缩时显示压缩前后文件名和压缩比;
		example:
			重新压缩:
				gzip -cd old.zip | gzip > new.zip
	gunzip:
		解压缩文件,同 ‘gzip -d’,文件名后缀必须符合要求;
		选项同上;
	zcat:
		不解压缩gzip压缩文件,而查看其内容;
		选项同上;
bzip2、bunzip2、bzcat、bzip2recover:
	bzip2:
		Usage:bzip2 【options】file1 。。。
		Explain:
			1、较gzip更高压缩比,用法大多相同;
			2、保留文件元数据信息;
			3、默认后缀为.bz;默认不自动覆盖已有文件;
		-c:压缩或解压缩至标准输出;
		-d:解压缩;
		-f:强制压缩或解压缩,覆盖已有文件;
		-q:忽略不重要的警告;
		-k:保留原文件;
		-s:降低压缩解压缩速度,减少内存用量;
		-v:解压或压缩时显示详细信息;
	bunzip2:
		解压缩,同‘bzip2 -d’
			file.bz 解压为 file
			file.bz2 解压为 file
			file.tbz 解压为 file.tar
			file.tbz2 解压为 file.tar
			file 解压为 file.out
	bzip2recover:
		恢复损坏bzip2压缩文件中未损坏的数据块文件;
	bzcat:
		不解压bzip2压缩文件查看其内容;
xz、unxz、xzcat:
	xz:
		Usage:xz 【options】file1.。。。
		Explain:
			1、较gzip,bzip2更大压缩比,更多的cpu时钟消耗;用法大多同上;
			2、默认删除原文件,默认后缀.xz;
		-t:测试文件完整性;
		-f:强制;
		-q:忽略;
		-d:解压缩;
		-c:至标准输出;
		-k:保留原文件;
		-S:压缩时修改默认后缀
		-#:指定压缩级别;
		-T #:指定压缩线程数;
		-v:详细信息
	unxz:
		解压缩,同‘xz -d’
			file.xz 解压为file
			file.lzma 解压为file
			file.txz 解压为file.tar
			file.tlz 解压为file.tar
	xzcat:
		不解压xz压缩文件而查看其内容;
zip:
	较早期的一款打包和压缩工具;目标可以是目录或文件;
	Usage:zip 【options】archive file1 file2 。。。
		-d :删除zip压缩包中的指定文件;
		-e:加密打包压缩文件;
		-r:对目录递归处理;
		-#:压缩率;
		-y:直接保存符号链接,而非原文件;
	unzip:解压缩;

文件归档:tar

	Explain:
		1、文件或目录归档工具,可结合压缩工具(gzip,bzip2,xz)使用;
		2、保留原文件;
	Usage:
		-c:创建;	-r:附加;
		-t:列出;	-x:展开;
		-h:存储原文件而非软链接;
		-f:指定归档名;
		-k:展开归档时不覆盖(tar展开归档时默认直接覆盖已有文件或目录);
		-C:指定归档存放目录;
		-z:使用gzip压缩后归档或解压后展开归档;
		-j:使用bzip2压缩后归档或解压后展开归档;
		-J:使用xz压缩后归档或解压后展开后归档;
		1、创建归档:
			tar -cf file.tar file/dir;
		2、展开归档:
			tar xf file.tar ;
		3、创建gzip压缩归档:
			tar zcf file.tar.gz file/dir;
		4、xz解压缩并展开归档:
			tar Jxf fiel.tar.xz;
		5、tar解压缩时不依据文件后缀名而自行判断文件类型,-z,-j,-J选项可省略,文件名可随意;

练习:

1、查找/var目录下属于root,且属组为mail的所有文件或目录;
	find /var -user root -a -group mail
2、查找/usr目录下不属于root、bin或hadoop的所有文件或目录;
	find /usr -not \( -user root -o -user bin -o -user hadoop \)
3、查找/etc目录下最近一周内其内容修改过,同时属主不为root,也不是hadoop的文件或目录;
	find /etc -mtime -7  -not \( -user root -o -user hadoop \)
4、查找当前系统上没有属主或属组,且最近一周内被访问过的文件或目录;
	find / -atime -7 -a \( -nouser -o -nogroup\)
5、查找/etc目录下大于1M且类型为普通文件或目录;
	find /etc -size +1M \( -type f -o -type d\)
6、查找/etc目录下所有用户都没有写权限的文件;
	find /etc -not -perm /222
7、查找/etc目录下至少有一类用户没有执行权限的文件;
	find /etc/ -not -perm -111
8、查找/etc/init.d目录下,所有用户都有执行权限,且其他用户有写权限的文件;
	find /etc/init.d -perm -111 -perm -002或
	find /etc/init.d -perm -113
9、查找资料,了解uefi、gpt

Tip:

1、扇区和块:
	扇区有物理扇区和逻辑扇区,扇区一般指物理扇区,由硬件厂商生产时划分好的磁盘的最小物理存	
	储单位(操作对象),大小固定为512Bytes(也生产有少数扇区大小为4k的磁盘);块属于文件
	系统级别的最小存储单位,逻辑概念,大小可调整。
2、block和磁盘IO的关系:
	参考:https://www.cnblogs.com/muahao/p/6596545.html
3、磁盘和文件系统单篇开讲:
	参考:http://man.linuxde.net/sub/%E7%A3%81%E7%9B%98%E7%AE%A1%E7%90%86
		https://www.toolfk.com/tool-find-linux

思考:

1、据google,一个1K的块可以存储128bytes大小的inode8个,即每512bytes的扇区会存储4个inode;
	思考:查找文件时,先找到目录文件所在block——>查询条目得到此文件的inode号——>根据文件
		系统的内在机制查找对此inode号对应的物理扇区地址——>读取数据——>查找该文件的block号
		——>读取对应物理扇区上的数据返回给用户;
		如果多个inode对应同一个物理磁盘扇区,文件系统可用区分此扇区中哪段数据对应哪个inode吗?
		一个block是不能同时属于多个文件的。
2、centos可以对分区进行分区操作,有何意义?
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值