shell 脚本 mv 抛出无用的错误 "No such file or directory" 即使我看到了
shell script mv is throwing unhelpful error "No such file or directory" even though i see it
我需要使用 shell 脚本将一个目录中的所有文件移动到另一个目录中。我手动执行此操作没有问题,现在编写脚本时 mv
命令出现错误。
在我要将文件移出的目录中有 2 个目录,php 和 php.tmp。我得到的错误是 cd: /path/to/working/directory/php: No such file or directory
。我很困惑,因为当我 ls 工作目录时,它就在那里开始并列出。
我得到的错误在这里:
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 正在以根用户身份执行。
我不明白为什么会出现此错误,所以,任何帮助都将非常有用。
你的变量引用正确吗?你可以试试 :
ls "$PWD" #ensure the files are there
mv "$PWD"/* "/company/home/directory"
ls "/company/home/directory" #ensure the files are moved
如果您的任何文件或目录名称包含空格或制表符等字符,您的 "mv" 命令可能没有看到您认为它看到的参数列表。
路径后加/
指定要移动的文件,而不是重命名目录。
你应该试试这个:
mv $PWD/\* /home/user/directory/
我需要使用 shell 脚本将一个目录中的所有文件移动到另一个目录中。我手动执行此操作没有问题,现在编写脚本时 mv
命令出现错误。
在我要将文件移出的目录中有 2 个目录,php 和 php.tmp。我得到的错误是 cd: /path/to/working/directory/php: No such file or directory
。我很困惑,因为当我 ls 工作目录时,它就在那里开始并列出。
我得到的错误在这里:
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 正在以根用户身份执行。
我不明白为什么会出现此错误,所以,任何帮助都将非常有用。
你的变量引用正确吗?你可以试试 :
ls "$PWD" #ensure the files are there
mv "$PWD"/* "/company/home/directory"
ls "/company/home/directory" #ensure the files are moved
如果您的任何文件或目录名称包含空格或制表符等字符,您的 "mv" 命令可能没有看到您认为它看到的参数列表。
路径后加/
指定要移动的文件,而不是重命名目录。
你应该试试这个:
mv $PWD/\* /home/user/directory/