我在移动和重命名目录和文件时遇到了非常奇怪的问题,mv
我以前从未遇到过。最奇怪的是它发生在Ubuntu以及赛格威在 Windows 上。
mv
尝试创建硬链接而不是实际移动或重命名文件或目录。
重命名目录的示例:
$ mkdir test
$ mv test test2
ln: ‘test’: hard link not allowed for directory
重命名文件的示例:
$ touch test
$ mv test test2
$ ll -i
131140 -rw-rw-r-- 2 user group 0 Nov 13 16:06 test
131140 -rw-rw-r-- 2 user group 0 Nov 13 16:06 test2
很明显mv
刚刚创建了一个硬链接,因为两个文件具有相同的 inode 编号。
为什么会这样?
我还有另一个系统Debian并且mv
在那里工作正常。是否可以在用户的点文件中的某个地方配置此行为?如果我切换到根在Ubuntu,mv
运行良好。所以我怀疑某些用户的配置,因为我使用相同的点文件Linux以及赛格威。
答案1
所以原因完全在我身上。我的点文件中有这个别名,它导致了奇怪的行为:alias mv='ln -i'
。
原因很简单:当我创建 的“安全”别名cp
并使用参数mv
时,我只是复制粘贴了以前的别名。对于别名,我更改了别名的内容,但没有更改其名称。它应该是,但最终变成了前面提到的。ln
interactive
ln
ln='ln -i'
mv='ln -i'
我感到羞愧。抱歉问了个愚蠢的问题,我怀疑没有人会遇到同样的问题。