我有一个简单的脚本,它从我的输入创建了一堆zip文件。
#!/bin/bash
echo "Declare directories to backup"
read dir_list
for dir in $dir_list
do
name="${dir}.tbz"
tar --create --verbose bzip2 --file=$name $dir
done
然后,我尝试添加一个move命令,通过在for循环中添加这一行来将它们移动到目录中。..
do
name="${dir}.tbz"
tar --create --verbose bzip2 --file=$name $dir
mv $name ~/backups
done
但我最终得到了一个名为备份的Bzip存档文件。相反,我希望有一个文件夹命名为备份与所有的。我刚刚创建的TBZ文件。
我做错了什么?
2条答案
按热度按时间jmo0nnb31#
循环上面的
mkdir -p "$HOME/backups"
-您必须首先创建目录。-p
标志用于在父目录不存在时创建父目录,但也用于在~/backups已经存在时避免失败。svdrlsy42#
你可能没有创建目录。你必须创造它。最好的命令是mkdir -p。如果该目录存在,则必须在循环中使用mv $name ~/backups/。你也可以在备份目录中运行脚本,并输入主文件的相对或绝对地址。