我正在尝试将当前目录中的所有文件移动到 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