gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 11:31:28 25 4
gpt4 key购买 nike

我对 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 仅在给出多个源参数时才要求目标是一个目录。

在这种情况下,这可能是由于您的变量因缺少引号而被拆分所致。使用双引号——如 http://shellcheck.net/指导 -- 围绕所有扩展。

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

请注意,只有最后一个被迭代的文件实际上会保留给定的名称——其余的将被它们的后继者覆盖。

关于linux - 使用 "mv"命令移动和重命名时,脚本将其视为目录而不是新文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43433440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com