我正在尝试用另一个覆盖现有文件。 我通过执行以下操作来替换存在的文件:
cp -f /tmp/workspace.xml > /system/TEST/workspace.xml
不幸的是,创建的新文件为空,并且不包含原始文件中的任何内容。
我也尝试了以下方法,但得到的结果相同。
mv -f /tmp/workspace.xml > /system/TEST/workspace.xml
那是为什么?
答案 0 :(得分:2)
不要对>
或mv
使用重定向运算符(cp
,也不需要在要覆盖的位置寻址文件名< / p>
mv -f folder_with_file_to_move/workspace.xml destination_folder_with_file_to_overwrite
答案 1 :(得分:2)
>
重定向命令的输出。它不会告诉命令将文件放置在何处。复制参数参数不足的输出什么也不是,因此您得到一个空文件。
请记住,>
仅重定向“ STDOUT”,并且还有一个名为STDERR的输出通道,必须分别重定向。
复制文件的正确方法:
cp -f /tmp/workspace.xml /system/TEST/workspace.xml
您也可以移动它:
mv -f /tmp/workspace.xml /system/TEST/workspace.xml
只有在关心捕获输出时才使用>
,例如在这种情况下:
cat /tmp/workspace.xml > /system/TEST/workspace.xml
在这种情况下,这会将cat
的输出引导到目标文件,之所以起作用,是因为cat
应该这样做。