Bash 脚本用于将文件夹 tar 保存为基本路径

Bash 脚本用于将文件夹 tar 保存为基本路径

我的脚本将我的 /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

此外,当这些变量引用文件名时最好使用引号。

相关内容