我的脚本将我的 /home/user 目录中的文件夹压缩,并将其全部保存在备份文件夹中。但是,当我打开每个 tar.gz 时,它们都包含目录 /home/user,然后是我想要压缩的文件夹和文件。
我的脚本:
#!/bin/bash
if [ ! -d ~/backup ]; then
mkdir ~/backup
fi
for i in `ls ~/folder`; do
echo "~/folder/$i"
if [ -d ~/folder/$i ]; then
tar -zcf ~/backup/$i.tar.gz ~/folder/$i
fi
done
我该怎么做才能防止 /home/user 被保存?
答案1
你必须进入该文件夹。例如:
#!/bin/bash
if [ ! -d ~/backup ]; then
mkdir ~/backup
fi
cd ~/folder
for i in *; do
echo "~/folder/$i"
if [ -d "$i" ]; then
tar -zcf ~/backup/"$i".tar.gz "$i"
fi
done
此外,当这些变量引用文件名时最好使用引号。