使用“compress,gzip,bzip2和zip”压缩和解压缩文件

时间:2010-11-17 04:43:13

标签: linux shell unix

我正在尝试编写一个脚本,该脚本将文件名作为参数,然后使用每个程序compress, gzip, bzip2zip压缩和解压缩该文件。在每个阶段,它都会记录压缩前后文件的大小。最后,它显示一个列表,显示压缩程序,未压缩大小,压缩大小和压缩比(最多1位小数)。我希望列表按照实现的压缩顺序排列,最高效压缩的数字在顶部。任何评论或帮助将非常感谢。非常感谢。

1 个答案:

答案 0 :(得分:3)

#!/bin/bash

file="$1"

# Original file size
orig_size=$(stat -c'%s' $file)

# Get sizes
gzip_size=$(gzip -c "$file" | wc -c)    
# Repeat for other compression types...

# Get ratios
gzip_ratio=$(echo "scale=1; 100 * ($orig_size - $gzip_size) / $orig_size" | bc)
# Repeat for others...

# Unsorted output
echo "gzip $orig_size $gzip_size $gzip_ratio" >> unsorted.txt
# Repeat for others...

# Create sorted list
sort -n -r +3 -4 unsorted.txt > sorted.txt
cat sorted.txt # Print sorted list