#!/bin/bash
source="/home/user/work/tar/deneme"
source2="/home/user/work/tar/deneme1"
for i in {1..5}
do
tar -czvf $source2/$i/$i.tar.gz $source/$i/
done
我收到此错误消息。
[tar: Removing leading
/'来自成员名称`
这是我的脚本和错误。这里有很多问题,但是我的问题没有解决。我运行脚本而不是脚本创建.tar.gz文件。但是,如果我使用tar -xzvf 1.tar.gz
此命令解压缩,则我的文件将以完整路径创建,例如home/user/work/tar/deneme/1/1-1.txt
。
你有什么想法吗?
我尝试了一些方法。例如Find /SED to convert absolute path to relative path within a single line tar statement for crontabhttps://unix.stackexchange.com/questions/59243/tar-removing-leading-from-member-names/59244
这是因为GNU tar
删除了前导/
(默认情况下)。为了避免这种情况,您可以通过以下方式重写脚本:
#!/bin/bash
cd /home/user/work/tar
source="deneme"
source2="deneme1"
for i in {1..5}
do
mkdir -p ${source2}/${i}
tar -czvf ${source2}/${i}/${i}.tar.gz ${source}/${i}/
done
谢谢您的所有评论和回答。
我找到了解决方案。我更改一些代码。里面是for循环
mkdir $source2/$i
cd $source/
tar -czvf $source2/$i/$i.tar.gz $i/*