我需要使用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身份执行。
我不明白为什么我会收到这个错误,所以任何帮助都会很棒。
答案 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”命令可能无法看到您认为它正在看到的参数列表。