mv命令疯狂移动文件

7

以下是脚本,我已经找出了我认为引起最近问题的代码块:

mv sourcefile targetfile > /dev/null  

我知道mv命令默认会在目标文件存在时覆盖它而不需要确认。因此,上面的脚本是正确的。
mv: try to overwrite `targetfile', overriding mode 0644 (rw-r--r--)?

只有使用-i选项时,它才会提示/要求确认覆盖,但在本例中未使用该选项。它不是总会发生。偶尔会弹出

那么,为什么会这样?

这是我的mv版本

mv (GNU coreutils) 8.12
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Mike Parker, David MacKenzie, and Jim Meyering.

你可以在http://unix.stackexchange.com/questions/87605/is-there-a-way-to-make-mv-fail-silently上获取更多的输入。 - linux_fanatic
4
“goes crazy” 这个描述并不清晰,无法准确表达实际发生了什么。它会卡住、退出、导致系统中所有内存被分配、导致大象从你的显示器里飞出来吗? - Vicky
@Vicky,我知道mv命令默认情况下会覆盖目标文件而不需要确认。唯一需要确认的情况是使用-i选项进行覆盖,但在这种情况下并未使用该选项。这意味着脚本将一直等待用户输入。这就是疯狂的原因。 - Srini V
2个回答

8
根据“man”页面,-f选项的目的如下:
       -f, --force
          do not prompt before overwriting

2
我找到了原因,是由于权限问题导致的。
我已经更新了目录权限为chmod a+w <directory> 其他可能的解决方案是在mv命令之前添加rm -f targetfile 当然,GHugo添加-f选项是正确的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接