首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

linux某个目录下有1.csv、2.csv、3.csv...100.csv文件,需要批量压缩...

发布网友

我来回答

3个回答

热心网友

如果压缩成1.csv.gz的话比较简单

find /path/to/dir -name *.csv | xargs gzip

如果不想原文件被删除的话

find /path/to/dir -name *.csv | xargs gzip -k

必须用zip的话没这么灵活了:

for ((i=1;i<101;i++)) do zip $i.zip $i.csv; done

 linux一般用gz的比较多。最后一种用awk也可以做到,不过比较麻烦。

热心网友

#!/bin/bash
for i in {1..100};do
    zip $i.zip $i.csv
done
echo "Zip is over"
exit 0

 补充:zip的压缩比并不是很大,在Linux下建议使用tar命令进行归档压缩。

如tar -jcf demo.tar.bz2 FILENAME

热心网友

#!/bin/sh
for csvname in `ls *.csv`;do
zipname=${csvname%\.*}
zip -r $zipname $csvname
done追问谢谢。非常感谢。可以再请教你一个问题吗? 再把这些压缩后的1.zip 2.zip 3.zip 4.zip FTP上传到另外一台服务器的/home/xxxx/目录,另外一台机器的用户名和密码是user1/user1, 这个脚本怎么写。

追答需要设置ssh无密码访问或者安装sshpass命令
#!/bin/sh
for csvname in `ls *.csv`;do
zipname=${csvname%\.*}
zip -r $zipname $csvname
scp ${zipname}.zip user1@192.168.1.2:/home/user1
done

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com