Linux学习日记 6.28 (文件操作)

mooc链接

一。归档压缩文件

1.打包文件 tar

tar 打包文件(不压缩)

选项及参数
tar -cf [打包文件名] [要打包的文件/列表]
-c:创建打包文件
-f:指定打包文件名
打包文件名必须紧跟f
要打包的一批文件用空格隔开

tar -cf sample.tar /tmp/file01 /tmp/file02 /tmp/file03
//打包file01,file02,file03到文件sample.tar

选项

选项说明
-A合并两个归档文件
-c创建一个新的归档文件
–delete从归档文件中删除一个文件
-r向归档文件末尾追加文件
-t列出归档文件中的文件
-u更新归档文件
-x从归档文件中解出文件
-C指定一个解档目录
-f指定一个归档文件/设备进行操作
-z调用gzip来压缩/解压缩文件
-j调用bzip2来压缩/解压缩文件
-v显示归档过程

注意
1.归档文件后的.tar不是必须的,加上后缀方便操作
2.-f选项后必须紧跟归档文件名
3.tar不会压缩文件
4.tar在创建归档文件时,会自动删除被归档的文件路径中的根路径“/”,其目的是为了不在释放文件时意外覆盖同名文件

tar -tf ./samplefile.tar
//列出打包文件中的所有文件

tar -f sample.tar --delete tmp/file 05
//删除sample.tar中的file05

tar -f ./sampledir01.tar -A ./samplefile.tar
//将samplefile.tar合并到sampledir01.tar中 

tar -f ./sampledir01.tar -r ~/fileA.txt
//向sampledir01.tar中追加家目录中的fileA.txt文件

tar -xf ./sampledir01.tar -C./sampledir
//将sampledir01文件解包
//默认解包目录是当前目录,-C(大写)可指定解包的目录

2.压缩文件 gzip

gzip [要压缩的文件|列表]

选项说明
-c将输出写到标准输出上,并保留原有文件
-d将压缩文件解压
-数字用指定的数字调整压缩速度和压缩比。
-v压缩或解压缩文件时,显示详细信息
-t测试,检查压缩文件是否完整
gzip ./sampledir01.tar
//压缩sampledir01.tar文件
//gzip自动为压缩文件添加.gz的后缀名

gzip -d ./sampledir01.tar.gz
//将sampledir01.tar.gz文件解压

压缩比
在这里插入图片描述
-1表示最低压缩比,压缩后的文件最大,压缩过程最快。
-9表示最高压缩比,压缩后的文件最小,压缩过程最慢。
gzip默认采用-6

3.tar中调用gzip

tar中有特殊选项-z可以调用gzip

tar -czf sample.tar.gz /tmp/sample01 /tmp/sample02 /tmp/sample03
//打包并压缩sample01、sample02、sample03

tar -xzf sample.tar.gz
//解压缩和解包文件

二。链接文件

背景
在这里插入图片描述
Linux中,划分磁盘分区并格式化的时候,整个分区会被划分成inode区和data block区,每个文件都被分成两部分存放。一部分是文件的唯一标识inode-number以及属性信息,放在inode区的一个inode中;另一部分是文件的实际数据,放置在data block区中。Linux中,需要通过文件的inode来找到存放文件数据的data block

“如果将一个硬盘分区中所有文件比作一本书,inode区就是目录,data block区就是内容,必须通过目录找到具体内容。”

可以通过ls -l命令加上选项-i ,即ls -il列出文件的inode-number进行观察

第一个字段即为文件的inode-number

目录是怎样的文件?
在这里插入图片描述
目录是一张表,每个表项都代表一个文件,包含文件名,inode-number。
Linux中存取文件的过程为:通过文件名找到对应的inode-number,然后找到文件的inode,最后找到文件的数据。

1.创建符号链接 ln -s

ln -s [链接指向的文件] [链接名]

ln -s /tmp/hello.sh ./hello_link
//为hello.sh创建一个名为hello_link的符号链接

若符号链接指向的源文件被删除,则符号链接文件失效,称为“断裂”

2.硬链接 ln

ln [链接指向的文件] [链接名]

硬链接原理
在这里插入图片描述
硬链接的作用为:让一个inode-number对应多个文件名,inode和数据不变。
在这里插入图片描述
如图,两次硬链接命令将硬链接数量从1变为2和3,inode-number都相同。

若给一个文件创建硬链接,删除其中一个文件名,仍可以通过剩下的文件名访问文件数据,除非所有文件名都被删除。

注意事项
1.不推荐为目录创建硬链接,容易造成目录遍历死循环。
2.不能跨硬盘分区创建硬链接,因为在不同的分区中,文件的inode-number不再是唯一的。

三。查看文本文件

Linux中的配置文件,日志文件通常都采用纯文本格式存储。

1.cat (concatenate)

cat 功能:
1.连接几个文件
2.从键盘创建文件
3.查看文件

cat [要查看的文件名] ,只适合查看较小的文件。

2.less和more

less功能更强大,对较大的文本文件,建议使用less来查看。

less [要查看的文件名]
可用键盘上下键进行翻行,pageup和pagedown进行翻页。
具备查找功能,用”/“进行查找,n和N跳转。
q退出less回到命令行。

3.head和tail

head用于查看文件的头几行

head -n 20 /var/log/message
//查看message文件头20行,若文件不到20行则全部显示
//若head后不跟-n和参数,则默认显示文件头0行

tail用于查看文件的末尾几行,用法与head一样。

head和tail命令经常用于查看日志文件。

四。查找文件

1.locate

查找较快但功能较弱。

locate [查找的路径] [文件名的关键字]

locate .tar
//在整个系统中查找名字中包含“.tar”字样的文件

locate 限制:
在这里插入图片描述
利用locate查找文件时,有时会找到已经被删除的文件,或者无法查找到刚刚建立的文件。这是由于记录文件名的数据库没有实时更新造成的,数据库默认情况下每天更新一次。可以用updatedb命令手动更新数据库,若系统中存储文件较多,更新操作将会花费一定的时间。

2.find

功能强大但查找稍慢

find [查找范围] [查找条件] [动作]

①.通过文件名查找 -name

find / -name password
//在整个系统中查找文件名为password的文件。
//文件名必须是准确名称而不是关键字,若要搜索关键字可用通配符。

②.通过文件类型查找 -type

find /bin -type l
//在bin目录下查找所有的符号链接文件。

③.根据文件的时间属性进行查找
在这里插入图片描述

通过时间属性查找文件的时间轴
在这里插入图片描述

find /tmp -mtime -3
//在tmp目录下查找3天之内内容发生改变的文件

find /tmp -mtime +7
//在tmp目录下查找7天之前内容发生改变的文件

find /tmp -mtime 4
//在tmp目录下查找4天前的那天内容发生改变的文件

④.根据文件大小进行查找 -size

根据文件大小查找文件中使用的大小单位
在这里插入图片描述

find /tmp -size -3k
//在tmp目录下查找比3k字节小的文件

find /tmp -size +100c
//在tmp目录下查找比100字节大的文件

find /tmp -size 10M
//在tmp目录下查找10M字节的文件

⑤.根据文件拥有者和从属用户组的属性进行查找
在这里插入图片描述

find /tmp -user root
//在tmp目录下查找拥有者是root用户的文件

find /tmp -uid 500
//在tmp目录下查找拥有者用户uid为500的文件

find /tmp -group stu
//在tmp目录下查找从属于stu用户组的文件

find /tmp -gid 0
//在tmp目录下查找从属于gid为0的用户组的文件

⑥.根据文件的权限进行查找 -perm

find /tmp -perm 754
//在tmp目录下查找权限为754的文件

以上例子采用的都是单个条件,也可以采用联合条件
在这里插入图片描述
用三种逻辑运算符来链接查找条件。

find /tmp \( -size +1k -a size -10M -a -mmin -30 -a -type f \)
//在tmp目录下查找大于1k小于10M,在30分钟内文件内容被修改过的普通文件。

特殊选项 -exec

-exec后可跟一个 shell命令,find将对查找到的文件执行该参数所指定的命令。

find /tmp \( -size +1k -a size -10M -a -mmin -30 -a -type f \) -exec rm -rf {} \;

在这里插入图片描述
其中这部分,“-exec”表示动作开始,“\;”表示动作结束,中间部分为find命令的动作,“rm -rf”代表具体命令,{}代表查找到的文件。

find ~ \(-mmin -10 -a -type d \) -exec tar -cf {}.tar {} \;
//在当前用户家目录下查找10分钟内被修改过的目录文件
//并且将它们打包为同名,后缀为.tar的打包文件

-OK

-OK可用于替换-exec ,用处基本相同,只是以更安全的模式执行动作命令。
在执行每一个命令之前都会给出提示,让用户来确定是否执行,在删除文件可考虑使用-OK选项。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值