使用shell脚本自动获取目录下的以不同前缀开头的文件并打包成不同的tar包
时间: 2023-03-03 20:39:29 浏览: 283
您可以使用以下脚本来自动获取目录下以不同前缀开头的文件并打包成不同的 tar 包:
```bash
#!/bin/bash
# 定义要查找的目录和前缀
DIR="/path/to/directory"
PREFIXES=("prefix1" "prefix2" "prefix3")
# 遍历所有前缀
for PREFIX in "${PREFIXES[@]}"
do
# 查找以当前前缀开头的文件并将它们打包成 tar 包
FILES=$(find $DIR -name "${PREFIX}*")
if [ -n "$FILES" ]; then
tar -czf "${PREFIX}.tar.gz" $FILES
fi
done
```
请根据您的实际情况修改脚本中的目录路径和前缀数组。脚本将在指定目录中查找以不同前缀开头的文件,并将它们分别打包成不同的 tar 包。如果某个前缀没有找到对应的文件,则不会创建相应的 tar 包。
相关问题
shell脚本传压缩文件分包传
以下是一个将文件打包、压缩并分割成指定大小的shell脚本示例:
```shell
#!/bin/bash
# 定义变量
file_name="example.tar.gz" # 文件名
file_size="10M" # 每个分割文件的大小
source_dir="/path/to/source/dir" # 源文件目录
# 打包、压缩并分割文件
tar -zcvf - "$source_dir" | split -b "$file_size" - "$file_name"_
```
解释:
- `tar -zcvf - "$source_dir"`:将源文件目录打包并压缩成gzip格式,`-`表示输出到标准输出流。
- `split -b "$file_size" - "$file_name"_:`:将标准输入流中的数据分割成指定大小的文件,并以`$file_name`为前缀,`_`为后缀命名。
使用方法:
1. 将上述脚本保存为`compress.sh`文件。
2. 修改脚本中的变量值,例如将`file_size`修改为需要的分割文件大小,将`source_dir`修改为需要打包的源文件目录。
3. 在终端中执行`chmod +x compress.sh`命令,将脚本文件变为可执行文件。
4. 在终端中执行`./compress.sh`命令,即可开始打包、压缩并分割文件。
编写一个shell脚本实现备份一个目录下的内容,每隔6小时增量备份一次
好的,可以的。以下是一个简单的shell脚本,可以备份指定目录下的所有内容,并且每隔6小时增量备份一次。
```shell
#!/bin/bash
# 定义备份目录和源目录
backup_dir="/path/to/backup/dir"
source_dir="/path/to/source/dir"
# 定义备份文件的前缀
backup_prefix="backup"
# 定义增量备份间隔时间(秒)
backup_interval=$((6 * 60 * 60))
# 循环备份
while true
do
# 构建备份文件名
backup_file="${backup_prefix}-$(date +%Y%m%d-%H%M%S).tar.gz"
# 执行备份命令
tar czf "${backup_dir}/${backup_file}" "${source_dir}"
# 打印备份完成信息
echo "Backup ${backup_file} completed."
# 等待一段时间再进行下一次备份
sleep "${backup_interval}"
done
```
这个脚本会每隔6小时备份一次,并且每次备份会产生一个以“backup-日期-时间.tar.gz”的文件。你可以将“/path/to/backup/dir”和“/path/to/source/dir”替换成你实际的备份目录和源目录。
阅读全文