shell脚本mv正在抛出无用的错误"没有这样的文件或目录"即使我看到它

时间:2017-01-15 21:12:13

标签: linux bash shell mv

我需要使用shell脚本将目录中的所有文件移动到另一个目录中。我手动执行此操作没有问题,现在脚本编写它给我一个mv命令错误。

在我希望移动文件的目录中有2个目录,php和php.tmp。我得到的错误是cd: /path/to/working/directory/php: No such file or directory。我感到困惑,因为它是在我工作目录时开始并列出的。

我得到的错误是:

ls $PWD #ensure the files are there
mv $PWD/* /company/home/directory
ls /company/home/directory #ensure the files are moved

当我使用ls $PWD时,我会看到我要移动的目录,但之后的错误表明它不存在。然后当我ssh到机器上运行时,我看到文件已正确移动。

如果重要的话,我移动文件的目录由不同的用户拥有,但shell正在以root身份执行。

我不明白为什么我会收到这个错误,所以任何帮助都会很棒。

2 个答案:

答案 0 :(得分:1)

在路径后添加/以指定您要移动文件,而不是重命名目录。

你应该试试这个:

mv $PWD/\*  /home/user/directory/

答案 1 :(得分:0)

您的变量是否正确引用?你可以尝试:

ls "$PWD" #ensure the files are there
mv "$PWD"/* "/company/home/directory"
ls "/company/home/directory" #ensure the files are moved

如果您的任何文件或目录名称包含空格或制表符等字符,则您的“mv”命令可能无法看到您认为它正在看到的参数列表。