Bash脚本;mv";复制?

Bash脚本;mv";复制?,bash,mv,Bash,Mv,我正在写我的第一个Bash脚本,这让我感到困惑: sdir="/Applications/MAMP/htdocs" echo "... downloading skeleton ..." wget -q -P $sdir --no-check-certificate https://github.com/xxx/master.zip unzip -q $sdir/master.zip -d $sdir rm -f $sdir/master.zip echo "... downloa

我正在写我的第一个Bash脚本,这让我感到困惑:

sdir="/Applications/MAMP/htdocs"

echo "... downloading skeleton ..."
  wget -q -P $sdir --no-check-certificate https://github.com/xxx/master.zip
  unzip -q $sdir/master.zip -d $sdir
  rm -f $sdir/master.zip
echo "... downloading finished ..."
  mv $sdir/Unzipped-master-folder $sdir/master
echo "... created new dir mdir/ ..."
我正在下载压缩主文件夹,在我的源目录中解压它(这将创建一个文件夹“解压主文件夹”)。当我想用mv将其重命名为“master”时,我会得到一个新文件夹“master”,但旧文件夹仍然保留着,就好像mv被复制了,忘记了清理一样

在执行mv之前,我已经插入了5秒的睡眠延迟,但没有效果


EDIT:Nevermind,我犯了一个愚蠢的错误,在脚本的下面,我再次将文件夹复制到目录中。mv按预期工作并删除旧文件夹。

当您说旧文件夹仍然存在时,您是指目录还是文件?我认为,如果只剩下目录,那么这是正常的行为,您只需要一个rm$sdir/unzip master foldertry添加“set-x”作为第一行来启用bash调试并重新运行script@PeterJ包含完整内容的旧文件夹仍保留。我不明白的是,如果我在终端上使用
mv
,它总是自动删除旧文件/文件夹。你不一样吗?@dAm2K谢谢你的脱布电话!不过路径很好。不要忘了在变量周围放置
,如
rm-f“$sdir/master.zip”
。这可以防止在变量中包含空格等时发生不好的事情。