繁体   English   中英

使用“ mv”命令移动和重命名时,脚本会将其视为目录而不是新文件名

[英]When using “mv” command for moving and renaming, script sees it as a directory instead of new filename

我对mv命令有疑问。

为了移动和重命名文件,我做mv file someDir/File2在我的终端和它移动文件到someDir与所谓的新名字File2

但是,当我使用Shell脚本执行此操作时,它将File2部分视为目录,而不是文件的新名称。

所以我有两个变量, NEWDir=newDirNEWF=newName

for i in *.txt ; do
  mv $i $NEWDIR/$NEWF
done

我运行此脚本,它显示以下内容:

mv: target 'newName' is not a directory.

mv仅在给出多个source参数的情况下才要求目标为目录。

在这种情况下,这可能是由于缺少引号导致变量被拆分而引起的。 所有扩展名中使用双引号(如http://shellcheck.net/指示)。

for i in *.txt ; do
  mv "$i" "$NEWDIR/$NEWF"
done

请注意,只有经过迭代的最后一个文件实际上会留下给定名称-其余文件将被其后继文件覆盖。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM