shell脚本: 逐个压缩文件夹内所有文件和文件夹
Posted zHeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell脚本: 逐个压缩文件夹内所有文件和文件夹相关的知识,希望对你有一定的参考价值。
Linux下通过zip命令逐个压缩某文件夹下的子文件夹和文件(支持文件名中带空格场景):
filename : zipfolder
#!/bin/bash
IFS=$\'\\n\'
for file in ` ls -1 $1 `
do
if [[ ${file} == *".zip" ]]
then
echo " skipped: ${file}"
else
zip -r "$1/${file}.zip" "$1/${file}"
fi
done
示例:
执行前:
MyMacBook-Pro:~ root$ find /Users/root/targetfolder -print | sed -e \'s;1*/;|____;g;s;____|; |;g\'
| | |____targetfolder
| | | |____file1.txt
| | | |____folder1
| | | | |____2.txt
| | | |____zipfile.zip
执行:
MyMacBook-Pro:~ root$ ./zipfolder /Users/root/targetfolder
adding: /Users/root/targetfolder/file1.txt (deflated 33%)
adding: /Users/root/targetfolder/folder1/ (stored 0%)
adding: /Users/root/targetfolder/folder1/2.txt (deflated 33%)
Skipped: zipfile.zip
执行后:
MyMacBook-Pro:~ root$ find /Users/root/targetfolder -print | sed -e \'s;1*/;|____;g;s;____|; |;g\'
| | |____targetfolder
| | | |____file1.txt
| | | |____file1.txt.zip
| | | |____folder1
| | | | |____2.txt
| | | |____folder1.zip
| | | |____zipfile.zip
- / ↩
以上是关于shell脚本: 逐个压缩文件夹内所有文件和文件夹的主要内容,如果未能解决你的问题,请参考以下文章
使用 shell 脚本或 AppleScript 将子文件夹中特定文件类型的所有文件压缩到每个子文件夹一个文件中
Linux使用shell脚本实现增量备份文件Linux合并历史备份文件Linux中find命令查询tar -cvzf文件生成压缩包Linux压缩包合并