请用shell 依次打包一个文件夹下的文件夹 打包的名称为文件夹下的文件夹名 并移动到上一层目录的tar目录下
时间: 2023-03-28 15:04:08 浏览: 89
可以使用以下命令实现:
```
for folder in */; do tar -czvf "../tar/${folder%/}.tar.gz" "$folder"; done
```
这个命令会依次遍历当前目录下的所有文件夹,对每个文件夹执行打包操作,并将打包后的文件移动到上一层目录下的tar目录中。其中,${folder%/} 表示去掉文件夹名末尾的斜杠,以便作为打包文件的名称。
相关问题
请用shell 依次打包一个文件夹下的文件夹 打包的名称为文件夹下的文件夹名
可以使用以下命令来实现:
```
for dir in */; do tar -czvf "${dir%/}.tar.gz" "$dir"; done
```
这个命令会遍历当前目录下的所有子目录,并将每个子目录打包成以子目录名命名的 tar.gz 文件。
请用shell 遍历一个文件夹下两层里名为image的文件 并改名为文件夹加文件夹下一层 然后统一移动到 jenkins/workspace/tar目录下 并打包
可以使用以下的 shell 脚本来实现:
```
#!/bin/bash
# 遍历文件夹下两层里名为image的文件
for file in $(find /path/to/folder -maxdepth 2 -type f -name "image")
do
# 获取文件所在的文件夹名
folder=$(dirname "$file")
# 获取文件名
filename=$(basename "$file")
# 将文件名改为文件夹名加文件夹下一层
new_filename="$folder/$(basename $(dirname "$file"))_$filename"
# 移动文件到 jenkins/workspace/tar 目录下
mv "$file" /jenkins/workspace/tar/"$new_filename"
done
# 打包文件夹
tar -czvf /jenkins/workspace/tar/images.tar.gz /jenkins/workspace/tar
```
请将 `/path/to/folder` 替换为实际的文件夹路径。
阅读全文