㈠ shell脚本:需根据文件的大小进行压缩
sh -x yourshell
看看每个步骤
你的第一步就有问题了, file就是把目录下的文件全都列出来了,取第二列就是文件名了。怎么去和2000000比较???
tar也有问题,你压缩成什么?少了参数吧。。。
rm也有问题。你才压缩一个文件,就把整个目录干掉了、、、
find . -size +2M 这样不就把文件大于2M的弄出来了。。。仅供参考:
[root@localhost ~]# ls -sh a
27M a
[root@localhost ~]# find . -size +2M
./a
[root@localhost ~]# find . -size +2M -exec tar cjf /tmp/{}.tar.bz2 {} \;
[root@localhost ~]# ls /tmp/
a.tar.bz2
㈡ 用shell压缩多个文件夹为zip
压缩为bcd.zip,保存在a文件夹中,如果要静默模式,zip命令加-q选项。
文件格式:
另指计算机文件压缩算法,原名真空,发明者为菲尔·卡茨,他于1989年1月公布了该格式的资料。
标准 ZIP 压缩文件格式分析:标准 zip 文件格式由三部分组成:zip 压缩数据段、中央目录区、中央目录区尾部。其中 zip 压缩数据段又分为 zip 文件头信息和压缩数据。如图 1、2、3 所示。带☆的是在文件修复中经常用到的。
(2)shell压缩文件扩展阅读:
命令参数:
Copyright (C) 1990-1999 Info-ZIP
Type 'zip "-L"' for software license。
Zip 2.3 (November 29th 1999). Usage。
zip [-options] [-b path] [-t mmddyyyy] [-n suffixes] [zipfile list] [-xi list]。
The default action is to add or replace zipfile entries from list, which。
can include the special name - to compress standard input。
If zipfile and list are omitted, zip compresses stdin to stdout。
-f freshen: only changed files -u update: only changed or new files。
参考资料来源:网络-Zip
㈢ shell脚本 把logs 目录下的每个文件夹 里面的文件都压缩
#/bin/bash
path=/corelogs/card_center/logs
folderlist=`ls $path|grep -v '^$'`
for i in $folderlist
do
cd $path/$i
filelist=`ls|grep -v '^$'`
for k in $filelist
do
zip -q -r $k.zip $k
done
done
##这是将所有log文件压缩在对应的日期目录下
㈣ powershell 下怎么压缩zip文件
#注意依赖.net 4.5 及以上。
#压缩
add-Type -AssemblyName 'System.IO.Compression.Filesystem'
$源目录 = 'a:aaabb'
$目标文件 = 'a:ccc.zip'
[System.IO.Compression.ZipFile]::CreateFromDirectory($源目录,$目标文件)
#下面这个函数 只打包 并不压缩
function Add-Zip{
param([string]$zipfilename)
if(-not (test-path($zipfilename)))
{
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(dir $zipfilename).IsReadOnly = $false
}
$shellApplication = new-object -com shell.application
$zipPackage = $shellApplication.NameSpace($zipfilename)
foreach($file in $input){
$zipPackage.CopyHere($file.FullName)
Start-sleep -milliseconds 500
}}
㈤ shell脚本压缩文件
#!/bin/bash
##for file zip and unzip
#date:2011/7/20
#input:current_filename
#use gunzip\bzip\tar commands to do this .
#two choices:pack||unpack
pack()
{
##use tar cmd to pack file
echo "Now will use tar to pack the file......"
echo "tar $CUR_FILE ......."
#sleep 1
tar -zcvf $CUR_FILE.tar.gz $CUR_FILE
if [ "$?" -eq "0" ];then
echo "pack file $CUR_FILE into tar.gz file ok~!"
else
echo "Error:Pack file into tar.gz failed~!"
exit 1
fi
}
unpack(){
##get file type
ftype=`file $CUR_FILE`
#echo file type
echo "Your file type is:###$ftype"
case "$ftype" in
"$CUR_FILE: Zip archive"*)
unzip $CUR_FILE
echo "unzip $CUR_FILE OK~!"
;;
"$CUR_FILE: gzip compressed"*)
gunzip $CUR_FILE
echo "gunzip $CUR_FILE OK~!"
;;
"$CUR_FILE: bzip2 compressed"*)
bunzip2 $CUR_FILE
echo "bunzip $CUR_FILE OK~!"
;;
*)
echo "File $CUR_FILE can not be uncompressed!!!"
exit 1
;;
esac
}
CUR_FILE="$1"
if [ -z $CUR_FILE];then
echo "Please input your filename!"
exit 1
else
echo "Your file name:$CUR_FILE"
##make target choice
echo "Which work you wanna do?"
select var in "pack" "unpack";do
break
done
echo "You selected $var file....."
case $var in
pack)
pack CUR_FILE
;;
unpack)
unpack CUR_FILE
;;
*)
echo "Usage:select option error!"
exit 1
esac
fi
㈥ SHELL脚本,解压缩指定目录下的ZIP文件到另一个目录下
#!/bin/bash
foriin$(ls/opt/bin/*.zip2>/dev/null)
do
unzip$i-d/opt/wep
done
㈦ 如何让shell把文件写入zip
unzip System.zip
cp system/framewrok/abc.xml System/system/framewrok/abc.xml
zip -r System.zip System/
命令就是上面那样,具体的目录什么的,你具体去操作
㈧ linux下把一个文件夹内的文件全部压缩的shell命令
比如生成的文件是file.tar.gz 你要打包的文件夹是/home/test/下的所有文件,命令如下(最后的星号不要忘记哦)。 tar -cvzf file.tar.gz /home/test/*
㈨ linux下如何将一个新增文件加入到一个压缩文件中
1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。
㈩ 如何用shell脚本实现 压缩Linux下某一目录下的所有文件夹
#!/bin/bash
for dir in `ls --file-type -1`;
do
if [ `echo $dir | grep "/$"` ]; then
dir=`basename $dir`;
tar -zvcf $dir.tar.gz $dir;
fi
done
说明:保存至文件名compress.sh,并置于相应目录下。
运行./compress.sh(或sh compress.sh)