shell 对同一个文件压缩成带编号的压缩包名称,每次编号累加
时间: 2024-02-24 17:53:25 浏览: 98
以下是一个 Bash Shell 脚本的示例,可以将指定的文件压缩成带编号的压缩包,并将编号逐次递增:
```bash
#!/bin/bash
# 压缩文件的路径和名称
file_path="/path/to/file.txt"
# 压缩包的路径和名称前缀
zip_path="/path/to/zip/file_"
# 获取当前编号
if [ -f "current_number.txt" ]; then
current_number=$(cat current_number.txt)
else
current_number=0
fi
# 递增编号
current_number=$((current_number+1))
# 压缩文件
zip -r "${zip_path}${current_number}.zip" "${file_path}"
# 保存当前编号
echo "${current_number}" > current_number.txt
```
使用方法:
1. 将上述脚本保存为一个文件,例如 `compress.sh`。
2. 为文件赋予执行权限:`chmod +x compress.sh`。
3. 执行脚本:`./compress.sh`。
每次执行脚本时,将会压缩指定的文件,并将压缩包命名为 `file_1.zip`、`file_2.zip`、`file_3.zip`,以此类推。同时,当前编号也会保存在文件 `current_number.txt` 中。如果需要重新开始编号,只需删除该文件即可。
相关问题
shell 对当天的同一个文件压缩成带编号的压缩包名称,每次编号累加
可以使用以下 Shell 脚本实现:
```bash
#!/bin/bash
# 获取当前日期
DATE=$(date +%Y%m%d)
# 获取当前编号
if [ -e lastnum ] ; then
NUM=$(cat lastnum)
else
NUM=0
fi
# 压缩文件
tar -czvf "file_${DATE}_${NUM}.tar.gz" file
# 更新编号
echo $((NUM+1)) > lastnum
```
脚本中的 `file` 是需要压缩的文件名,可以根据实际情况修改。脚本会在当前目录下生成带有日期和编号的压缩包文件。如果 `lastnum` 文件不存在,则默认编号为 0,否则从 `lastnum` 文件中读取上一次的编号。压缩完成后,脚本会将编号加 1 并写入 `lastnum` 文件。
阅读全文