shell 对当天的同一个文件压缩成带编号的压缩包名称,每次编号累加
时间: 2024-02-24 11:53:33 浏览: 20
可以使用以下 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` 文件。
相关问题
shell 对同一个文件压缩成带编号的压缩包名称,每次编号累加
以下是一个 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编写一个对特定文件夹中的7Z分卷文件合并成一个完整的压缩包
可以使用以下的 shell 脚本来实现:
```bash
#!/bin/bash
# 指定 7z 分卷文件所在的目录
path="/path/to/7z/files"
# 指定压缩包的名称
output_file="output.7z"
# 进入 7z 分卷文件所在的目录
cd $path
# 使用 7z 命令将分卷文件合并成完整的压缩包
7z x ${output_file} -so > ${output_file%.*}
# 删除分卷文件
rm ${output_file}.*
```
将以上代码保存为一个 shell 脚本文件,比如 `merge_7z.sh`,然后在终端中运行该脚本即可完成对指定目录中的 7z 分卷文件的合并操作。