一。归档压缩文件
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选项。