2016-8-28 压缩解压缩及归档 while脚本

文件管理命令――压缩解压缩及归档基本工具

压缩、解压缩命令

压缩格式:gz, bz2, xz, zip, Z

压缩算法:算法不同,压缩比也会不同;

早期
    压缩:
        compress(压缩比很小): FILENAME.Z ―― 压缩后的文件名
    解压:
        uncompress

gzip、bzip2、xz只能压缩文件,并且默认压缩完成后删除源文件,zip可以压缩目录

gzip: .gz
    gzip /PATH/TO/SOMEFILE:压缩完成后会删除原文件
        -d: 解压缩
        -#:1-9,指定压缩比,默认是6;
    
gunzip: (解压缩)
    gunzip /PATH/TO/SOMEFILE.gz: 解压完成后会删除原文件
    
    zcat /PATH/TO/SOMEFILE.gz: 不解压的情况,查看文本文件的内容    
    
bzip2: .bz2
bzip2比gzip有着更大压缩比的压缩工具,使用格式近似
    bzip2 /PATH/TO/SOMEFILE
        -d:解压缩
        -#: 1-9,指定压缩比,默认是6;
        -k: 压缩时保留原文件     
    bunzip2 /PATH/TO/SOMEFILE.bz2 ―― 解压缩
    
    bzcat /PATH/TO/SOMEFILE.bz2: 不解压的情况,查看文本文件的内容    
    
xz: .xz
    xz /PATH/TO/SOMEFILE
        -d:解压缩

-#:  1-9,指定压缩比,默认是6;
        -k: 压缩时保留原文件
        
    unxz
    xzdec:解压
        -k 保留源文件
        -c 输出到屏幕上
    xzcat :不解压的情况,查看文本文件的内容    
    
zip: 既归档又压缩的工具
    zip FILENAME.zip FILE1 FILE2 …: 压缩后不删除原文件
    unzip FILENAME.zip 解压
    
archive: 归档(把多个文件整合成一个文件),归档本身并不意味着压缩

tar: 归档工具, .tar ―― 只归档不压缩
    -c: 创建归档文件
    -f FILE.tar: 操作的归档文件(f后面必须要有参数)
    -x: 展开归档
    –xattrs: 归档时,保留文件的扩展属性信息(备份)
    -t: 不展开归档,直接查看归档了哪些文件

-zcf: 归档并调用gzip压缩
    -zxf: 调用gzip解压缩并展开归档,-z选项可以省略
    
    -jcf: 归档并调用bzip2压缩
    -jxf: 调用bzip2解压缩并展开归档,
    
    -Jcf: 归档并调用xz压缩  ―― (redhat6)

tar  -cf  xx.tar  FILE 归档并调用xz压缩

xz ${DEST}.tar

-Jxf: 调用xz解压缩并展开归档,

cpio: 归档工具
    file /boot/initr… .img ―― gzip
    cp /boot/initr… .img /root
    mv initr… .img initr…img.gz ―― 重命名
    ls
    gzip -d initr…img.gz ―― 解压文件
    ls -lh
    file initrd…img ―― cpio    
    
练习:编写一个脚本
1.    从键盘获得两个两个值,并计算两值的和
#!/bin/bash

echo "Input two intergers:"
read A B
echo "$A + $B = $[$A+$B]"


2.从键盘让用户输入几个文件,脚本能够将此几个文件归档压缩成一个文件    
#!/bin/bash
#
read -p "Input three files: " FILE1 FILE2 FILE3
read -p "Destnation : " DEST
read -p "Compress{gzip|bzip2|xz}: " COMP

case $COMP in
gzip)
 tar -zcf ${DEST}.tar.gz $FILE1 $FILE2 $FILE3
 ;;
bzip2)
 tar -jcf ${DEST}.tar.bz2 $FILE1 $FILE2 $FILE3
 ;;
xz)
 tar -cf ${DEST}.tar $FILE1 $FILE2 $FILE3
 xz ${DEST}.tar
 ;;
*)
 echo "Unknown"
 exit 8
 ;;

esac

脚本编程:
    顺序结构
    选择结构
        if
        case
    循环结构
        for
        while
        until
        
while循环:适用于循环次数未知的场景,要有退出条件
语法:
    while CONDITION; do
      statement
      ...
    done
    
1.计算100以内所有正整数的和
#!/bin/bash
#
declare -i I=1
declare -i T=0

while [ $I -le 100 ];do
 let T+=$I
 let I++
done
 echo $T
    
2.从键盘获取字符串,小写的替换成大写的输出,直到quit退出
#!/bin/bash

#
read -p "Input something: " STRING

while [ $STRING != ‘quit‘ ]; do
 echo $STRING | tr ‘a-z‘ ‘A-Z‘
 read -p "Input something:" STRING

done     
    
3.每隔5s就检查hadoop是否登录,
如果登录,显示其登录并退出;否则,显示当前时间,并说明hadoop尚未登录

#!/bin/bash
#
who | grep "hadoop" &> /dev/null
RETVAL=$?

while [ $RETVAL -ne 0 ]; do
 echo "`date`, hadoop is not login."
 sleep 5
 who | grep "hadoop" &> /dev/null
 RETVAL=$?
done

echo "hadoop is logged in."

4.写一个脚本:
1) 显示一个菜单给用户:
d|D) show disk usages.
m|M) show memory usages.
s|S) show swap usages.
*) quit.
2) 当用户给定选项后显示相应的内容;

扩展:
    当用户选择完成,显示相应信息后,不退出;
    而让用户再一次选择,再次显示相应内容;除了用户使用quit;

#!/bin/bash
#

cat << EOF
d|D) show disk usages.
m|M) show memory usages.
s|S) show swap usages.
*) quit.
EOF

read -p "You choice: " CHOICE
while [ $CHOICE != ‘quit‘ ]; do
    case $CHOICE in
    d|D)
        echo "Disk usage:"
        df -h ;;
    m|M)
        echo "Memory usage:"
        free -m | grep "Mem" ;;
    s|S)
        echo "Swap usage:"
        free -m | grep "Swap" ;;
    *)      
        echo "Unknown."
        ;;
    esac

read -p "You choice,Again: " CHOICE
done

echo命令

eg1:echo -e "\033[35mHello world\033[0m."
eg2:echo -e "\033[1;36;45mHello World.\033[0m"
    -e开启逃逸符    \033表示ctrl
    [0m结束符
    
    一位数字,表示字体格式
    eg:1,加粗显示
    eg:5,字体闪烁
    eg:7,前景色与背景色调换
    
    两位整数表示,同时控制前后景,用分号分割
    3#:字体前景色
    4#:字体背景色

时间: 2024-10-05 06:16:57

2016-8-28 压缩解压缩及归档 while脚本的相关文章

【linux_笔记】Linux_文件管理命令—压缩解压缩及归档基本工具

学习资源来自:www.magedu.com 学习记录过程中难免出现错误,如有发现,还望大神们指出. 示例操作部分有的与历史操作有关,如果先前的示例操作没有执行过的话,可能会有部分示例的操作无法执行.示例仅供参考.(示例见附件) 文件管理命令--压缩解压缩及归档基本工具 压缩.解压缩命令 压缩格式:gz, bz2, xz, zip, Z 压缩算法:算法不同,压缩比也会不同: 早期    压缩:        compress(压缩比很小): FILENAME.Z -- 压缩后的文件名    解压:

谢烟客---------Linux之压缩解压缩及归档工具的使用

压缩工具 compress/uncompress:  .Z结尾 gzip/gunzip: .gz结尾 bzip2/bunzip2: .bz2结尾 xz/unxz: .xz后缀 压缩及归档工具: zip/unzip 归档工具: tar,cpio(特殊场景) gzip/gunzip/zcat命令 1.LZ77压缩算法 2.压缩比不高:快速.高效 3.压缩/解压缩后删除原文件,为了节约空间 4.纯文本压缩,二进制压缩意义不大 5.压缩目录,-r gzip [OPTIONS...] FILE     -

linux之压缩解压缩及归档工具

压缩.解压缩及归档工具 1.压缩文件:XXXXXzip    filename 2.解压文件 Xunzip   filename.Xzip 3.查看压缩文件: Xcat   filename.Xzip 4.关于压缩工具 工具 文件扩展名 描述 Bzip2 .bz2 使用Burrows-Wheeler块排序文本压缩算法和Huffman编码 Compress .z 原Unix文件压缩工具,现在以你个很少使用 Gzip .gz Gun项目的压缩工具:使用Lempel-Ziv编码 Zip .zip Un

9. 文件系统——文件的压缩、解压缩、归档及底层复制命令(gzip bzip2 xz tar dd)

一.压缩和解压缩文件 先来看一个例子,现在要将如下几个字符串存储到硬盘上: abcdef,abc,def,mnabc,mndef 现在可以为这几个字符串设置编号,abc编号为1,def编号为2,mn的编号为3,于是上述字符串可以存为如下形式: abcdef,1,2,mn1,32 这个过程就是文件压缩的过程,而解压缩的过程,就是将按照编号存储的字符串还原成完整的字符串.故压缩就是将重复的内容使用符号加以替代.不同的压缩方法会采用不同的压缩算法,例如上述字符串可以将abc作为编号1,也可以将abcd

Linux学习笔记&lt;十三&gt;——文件压缩、解压缩和归档

压缩.解压缩命令: 1.compress/uncompress:压缩格式为Z,文件后缀为.Z compress /path/to/file uncompress /path/to/file.Z 2.gzip/gunzip/zcat:压缩格式为gz,文件后缀为.gz gzip [OPTION] /path/to/file:,压缩文件保存在被压缩文件的目录,压缩完成后会删除原文件 -v|verbose:显示指令执行过程 -d:解压缩,解压缩完成后删除原压缩文件 -#:1-9,指定压缩比,默认为6,数

linux压缩、解压缩及归档工具

压缩.解压缩及归档工具 compress/uncompress: .Z    gzip/gunzip: .gz    bzip2/bunzip2: .bz2    xz/unxz: .xz    zip/unzip    tar, cpio 1.gzip/gunzip gzip [OPTION]... FILE ...            -d: 解压缩,相当于gunzip            -c: 将结果输出至标准输出:            -#:1-9,指定压缩比: zcat:不显式

压缩、解压缩及归档工具

压缩.解压缩及归档工具 压缩工具 compress /Z gzip /gz bzip2 /bz2 xz /xz   目前主流的压缩工具一般使用bzip2和gzip,xz是比较新的压缩工具,每一种压缩工具使用的压缩算法都存在差异,越新的压缩工具可能压缩的效果更好,但压缩时间可能比较长,会消耗大量的CPU计算能力.实际生产中应当具体情况而定. 打包压缩工具 zip 打包压缩   zip -r /backup/sysconfig /etc/sysconfig 解包解压缩   unzip sysconf

+++++++btrfs、压缩/解压缩和编程之if和for总结

btrfs filesystem device balance subvolume 创建.挂载.子卷的挂载.创建.向btrfs中添加或移除设备.重新均衡数据 <btrfs系统不支持,网上摘录,以后再修改....> 1.父卷可直接格式化.挂载及同LVM逻辑卷一样可以动态的扩展和缩减 2.原生RAID(数据和元数据支持RAID),文件系统级别支持LVM 3.子卷的快照同LVM一样.LVM的逻辑卷的快照同原卷在同一个卷组中,btrfs的子卷的快照同原卷在同一个父卷中 4.btrfs系统中支持对文件快

【13】MD5编码、Zlib压缩解压缩

1.MD5加密 1 /// <summary> 2 /// 使用MD5加密算法 3 /// </summary> 4 /// <param name="md5MessageStr">需要加密的字符串</param> 5 /// <returns>加密后返回字符串</returns> 6 public static string GetMD5String(string md5MessageStr) 7 { 8 usi