移动文件时参数无效

移动文件时参数无效

我正在尝试将当前目录中的所有文件移动到 GuardDog-CMS 目录。现在所有文件实际上都是相同的,但当前目录中的文件是最新的。因此,当我进行移动时,我还想确保它不会提示我“文件已存在”或类似信息。因此我尝试以下操作:

~/Documents/github/GuardDog-CMS-TEMP/guarddog //current directory
~/Documents/github/GuardDog-CMS               //destination directory
mv -v . ../../GuardDog-CMS

但它给了我这个错误:

mv: rename . to ../../GuardDog-CMS/.: Invalid argument

答案1

由于使用了点 ( ),因此参数无效.。您的命令试图将当前目录重命名为../../GuardDog-CMS,但这是不可能的,因为在类 Unix 系统中,文件名中不允许使用斜杠。

*如果要移动当前目录中的所有内容,请使用:

mv -v * ../../GuardDog-CMS

如果当前目录中有隐藏文件,请使用shopt -s dotglob nullglob之前的命令来移动这些文件。

也可以看看:如何将一个目录中的所有文件(包括隐藏文件)移动到另一个目录中?

答案2

我意识到这是一个老问题,但上述答案对于问题的原因是不正确的。

您可以将文件夹重命名为带有斜杠的名称,只要它是某个地方的有效路径。

您无法执行重命名,.因为如果这样做,您在 shell 中的当前位置将变为无效,并且 shell 会避免创建这种情况。

移动内容而不是文件夹的建议是可行的,或者您可以移动到父文件夹并从那里进行移动:

cd ..
# Now we are one level up, so one less ../
mv your-original-subdirs-name ../GuardDog-CMS

相关内容