归档与压缩
归档
-
将许多零散的文件整理为一个文件
- 文件总大小基本不变
压缩
-
按照某种算法实现减小文件占用的空间
- .gz ==> gzip,gunzip (压缩速度最快,压缩比例小,最常用)
- .bz2 ==> bzip2,bunzip2 (压缩速度较快) {速度不绝对!!!!}
- .xz ==> xz,unxz (压缩最慢,压缩比例最高)
-
恢复时按照对应算法的逆算法即可解压
tar 命令
-
tar ==> 集成备份工具。( tar 打包/解包 ,制作/解放压缩包 )
-
格式:[ tar 选项 /路径/压缩包名字 /被归档压缩的数据 … ] (无路径时,Linux系统默认是当前路径)
-
[ -c ] : 创建归档,动作为创造。
-
[ -f ] : 指定归档文件名称,必须在所有选项(命令符选项)的最后。
- [ -c ]与[ -f ]经常一起使用**[ -cf ]**,创建一个有名字的归档压缩包。( -f 一定在最后面)
- 归档压缩后的名字需要提供足够的信息,起名为**[ xxxxx.tar.gz ], [xxxxx.tar.bz2]** 推荐。
- 压缩后的文件名在Linux系统里的显示为红色。
-
[ -z , -j , -J ] : 调用 .gz、.bz2、.xz 格式工具进行处理。
- [ -z ]与[ -j ]比较常用
- [ -zcf ] , [ -jcf ] …
- 例子 :[ tar -zcf /opt/a.tar.gz /opt/1.txt /opt.a ]
- -zcf 作用 [.gz] 格式压缩 [ /opt/1.txt ] 与 [ /opt/a ] 到 /opt 下的 a.tar.gz 文件
-
[ -C ] : 指定路径
-
[ -x ] : 释放归档。解包
- 格式 :tar 选项 /路径/压缩包 选项 /释放位置 (无释放位置时,默认当前位置,注意重名文件)
- [ -x ] 和 [ -f ] 一起用 [ -xf ]
- 例子 : tar -xf /opt/a.tar.gz -C /opt/a 解压 a.tar.gz 到 /opt 下的 a 目录
- 注意 [ -C ] 的大写
-
[ -t ] : 显示/查看归档中的文件内容/清单。
-
例子 : tar -tf /opt/a.tar.gz 查看 a.tar.gz 压缩文件的内容
- 显示内容 : opt/1.txt opt/a/
-
tar 命令在压缩时会把对应的绝对路径(上例中的/opt/a.tar.gz/opt/1.txt)也压缩到包里
-
无绝对路径的 tar 命令压缩如下:
-
格式 : [ tar -zcf /路径/压缩包 -C /被压缩路径 被压缩文件名]
例子 :tar -zcf /opt/a.tar.gz -C /opt 1.txt a
把路径 /opt 下的 1.txt 和 a 目录压缩到 a.tar.gz
-
-
-
当无需压缩只需要归档时, tar 命令格式和压缩相同,选项无需选择压缩算法直接用**[ -cf ]**.
-
归档文件需要压缩时 [ gzip/bzip2 压缩文件 ]
- 注意:只归档无压缩时,原文件会消失(移动到归档文件内)。
重定向操作
-
Linux系统的命令输出默认是输出到屏幕(终端)中
-
重定向 :将命令的输出(屏幕显示信息),写入到指定文件中
-
有两种重定向输出的方式
-
覆盖重定向 :[ 命令行 > 指定文件]
- 例子 : hostname > /opt/1.txt
- ==> 1.txt 中的内容为 < szhou 192.168.1.143 >
- 例子 : hostname > /opt/1.txt
-
追加重定向 :[ 命令行 >> 指定文件]
-
例子 : hostname >> /opt/1.txt
-
==> 1.txt 中的内容为 < szhou 192.168.1.143
szhou 192.168.1.143 >
-
-
-
-
echo 命令 :输出用命令符。
- 格式 :[ echo 输出内容 ] (直接将输出内容显示在终端屏幕上,可以作为命令输出使用)
- 与重定向连用 [ echo 输出内容 > 指定文件 ] / [ echo 输出内容 >> 指定文件 ]
-
用重定向清空文件内容
- [ > /opt/1.txt ] 覆盖重定向,用NULL输出覆盖掉文件内容 (注意安全)
管道( 操作符 | )
-
操作符号 [ | ] :在同一命令行中,将前面的命令输出,传递给后面的命令,同时作为后面命令的参数。
-
运行无前后关系,后面命令无参数。
-
例子 :[ head -3 /opt/1.txt | tail -1 ]
- 把 /1.txt 的前三行作为命令**[ tail -1 ]** 的参数,最终输出 /1.txt 的前三行中的倒数第一行。
-
例子 :[ ifconfig | head -2 ]
-
把命令 ifconfig 的显示结果作为命令**[ head -2 ]** 的参数,最终输出 ifconfig 的前两行。
-
无参数也可以运行的命令符不支持管道。 例子 : [ -ls ]
-
双参数或多参数的命令符文不支持管道。 例子 : [ mount ] , [ cp ] , [ mv ]
-
交互式命令符不支持管道。 例子 : [ vim ]
-
与重定向可以使用 。 例子 :[ ifconfig | head -2 > /opt/1.txt ]
把 ifconfig 的前两行覆盖写入到 /opt/1.txt 中。
-
grep 命令符可以使用管道,达到双重过滤的效果。
-
例子 : [ grep szhou /opt/1.txt | grep -v ^$ ]
把 /opt/1.txt 中存在 szhou 并且不是空行的文字行过滤(输出)出来
-
-
提取有效信息 [ grep -v ^# /opt/1.txt | grep -v ^$ > /opt/2.txt ]
把 /opt/1.txt 中的有效信息(去掉#注释和空行)覆盖写入 /opt/2.txt中
-
管道与 less 命令符连用,可以方便查看命令输出。
例子 : [ ifconfig | less ]
-
bc 计算器 [ echo 1+1 | bc ] 输出是 2 。
find 精准查找
-
根据条件递归查找对应的文件。查找所有符合条件的数据对应路径。
-
只有给予的路径中所有数据搜索完毕后结束。
-
格式 : find [ 目录 ] [ 条件1 ] (无目录情况,以当前目录为准)
常用的条件表示
[ -type 类型 ]
-
-type f 文件 [ find /boot -type f ]
-
-type d 目录 [ find /boot -type d ]
-
-type l 快捷方式 [ find /sbin -type l ]
-
[ find /boot -type f | cat -n ] 标记行数。
-
[ wc ] 命令符,表示统计。[ wc -l ] 统计行数。
-
[ find /boot -type f | wc -l ]
[ -name “文档名称” ]
- [ find /etc -name “passwd” ]* /etc 下查找就叫”passwd“的文件
- [ find /etc -name “.*” ] /etc 下查找隐藏文件
- [ find /boot -name “* 4.18.0*” ] /boot 下含有4.18.0的文件
- [ -name ] [ -type ] 可以联合使用
[ find /etc -name “passwd” -type f ] - [ -name ] [ -type ] 中间加上 [ -o ] 表示或者(OR)
[ find /etc -name “passwd” -o -type f ] - [-iname] 可以忽略大小写
[ -size +/- k/M/G ]
- [ -size + ] 或 [ -size - ] [ k / M / G ]
- 表示文件大小大于或者小于对应单位
[ find /boot -size +300k ] 在 /boot 中查找大小超过 300k 的文件
[ find /boot -size +10M ] 在 /boot 中查找大小超过 10M 的文件
[ find /boot -size -2G ] 在 /boot 中查找大小小于 2G 的文件
- 表示文件大小大于或者小于对应单位
[ -user 用户名 ]
- 数据的所有者。(Linux系统认为,所有文件都是各个用户创建的)
- [ ls -l ] 可以查看对应文件的用户名
- root 管理员模式下大部分都是 root 为数据所有者(/home/ 下的各个用户文件除外)
- find 命令是寻找硬盘数据 。/proc 是内存的数据,无法用find 查找
[ find /home -user szhou ]
[ find /opt -user root ]
[ -mtime +/-修改时间 ]
- 根据数据的最终修改时间查找文件(所有的时间都是过去时间)
- [ ls -l ] 可以查看最终修改时间(只有修改了内容才会变动时间)
- [ -mtime +90 ] 表示 90天之前的文件 [ find /opt -mtime +90]
- [ -mtime -90 ] 表示 90天之内的文件 [ find /opt -mtime -90 ]
- 业内认为, 90天(3个月) 是判断一个文件陈旧与否的判断 ,超过 90天没有更新的文件需要维护清理。
- /var :经常变化的数据会存放于此。
find 的高级使用 :
-
找到符合条件的数据,并且进行其他命令符的操作。
-
简单的操作可以使用管道 [ | ] 进行。(单命令类)
-
[ -exec ] 表示开始额外命令符操作
-
[ /; ] 表示额外命令符结束
-
{} 表示前面find查找的结果,作为额外命令符的参数
-
[ find /opt -mtime -90 -exec cp {} /opt/1.txt ; ]
把/opt中最终修改时间在90天以内的文件,复制到 /opt/1.txt 中
-
*[ find /etc -name "tab" -type f -exec cp {} /opt/a ; ]
-
-