我有2000个文件,我现在想把他们每300个压缩为一个压缩包,请给我linux shell 指令
时间: 2024-04-08 08:30:28 浏览: 150
您可以使用以下的 Linux shell 指令来实现将每300个文件压缩为一个压缩包的功能:
```bash
#!/bin/bash
input_directory="/path/to/files" # 输入文件所在的目录
output_directory="/path/to/output" # 压缩包输出目录
prefix="compressed_" # 压缩包名称前缀
counter=1 # 计数器
# 创建输出目录(如果不存在)
mkdir -p "$output_directory"
# 切换到输入文件目录
cd "$input_directory"
# 使用 for 循环遍历所有文件
for file in *; do
if [[ -f "$file" ]]; then # 仅处理普通文件
if (( counter % 300 == 1 )); then
# 创建新的压缩包
archive_name="$output_directory/$prefix$((counter / 300 + 1)).zip"
zip -q "$archive_name" "$file"
else
# 将文件添加到当前压缩包
zip -q -u "$archive_name" "$file"
fi
(( counter++ ))
fi
done
```
请根据您的实际情况修改 `input_directory`(输入文件所在的目录)和 `output_directory`(压缩包输出目录)的路径。脚本会遍历输入文件目录中的每个文件,并将它们按照每300个文件压缩成一个新的压缩包。压缩包名称以 `compressed_` 作为前缀,后面跟着计数器的值,例如 `compressed_1.zip`、 `compressed_2.zip` 等。
请在使用该脚本之前确保您的系统中已经安装了 `zip` 命令。
阅读全文