我正在试图使用mv
命令重命名文件(将空格替换为破折号)。如果我在不使用引号的情况下传递源文件和目标文件参数,由于mv
认为这是参数结束,所以源文件会被分解。
如果我用引号包围源文件和目标文件参数,mv
会报告找不到源文件。目前,$1和$2在开头和结尾都有硬编码引号,在没有硬编码引号的情况下,它们的等价项是$onam和$dnam。
从提示符中运行的此命令完美地工作,因为源文件和目标文件都用引号括起来:
mv "/home/bryan/renametest/TestFolder/test file" "/home/bryan/renametest/TestFolder/test---file"
这是我目前尝试过的(输入和结果):
mv $1 $2
mv: cannot stat `"/home/bryan/renametest/TestFolder/test file"'
No such file or directory
mv $onam $dnam
mv: cannot move `/home/bryan/renametest/TestFolder' to a subdirectory of itself,
`/home/bryan/renametest/TestFolder/test---file'
mv $1 $dnam
mv: cannot stat `"/home/bryan/renametest/TestFolder/test file"':
No such file or directory
mv $onam $2
mv: cannot move `/home/bryan/renametest/TestFolder' to `"/home/bryan/renametest/TestFolder/test---file"':
No such file or directory
我该如何移动那些包含空格的文件?