【发布时间】:2017-03-27 09:17:36
【问题描述】:
当我今天访问我的 Ubuntu 16.04 服务器并想删除文件“test2”时,它根本没有被删除!
我用过
rm test2
还有
rm -f test2
但它仍然没有删除它,您可以在此处阅读:
root@icinga:~# ls
basket desd.save packages scripts src test2 test5 unused
root@icinga:~# rm test2
root@icinga:~# ls
basket desd.save packages scripts src test2 test5 unused
root@icinga:~# rm -f test2
root@icinga:~# ls
basket desd.save packages scripts src test2 test5 unused
我也试过删除其他文件,没用!
我是“test2”的所有者,使用ls -la test2你可以看到我有读写这个文件的权限!
root@icinga:~# ls -la test2
-rw-r--r-- 1 root root 9 Nov 11 20:33 test2
使用which rm 表示/bin/rm。
root@icinga:~# which rm
/bin/rm
而且\rm test2 也不会删除文件!
我还检查了名称,末尾没有空格等,因为当我使用cat test2 时,会显示正确的内容!
我也可以创建一个新文件,但也不能删除它。
rm 也不是别名,我使用了unalias rm 但它说“rm: not found”。
重启也没有用。
我遇到的问题是我不小心删除了一个文件而不是移动它,所以我创建了一个脚本,只是将文件移动到某个目录。
然后我使用nano /etc/environment 并在该脚本所在的位置添加了“:/root/scripts”!
之后,我使用alias rms='./rm' 创建了别名 rms。我知道像系统命令一样命名文件可能很愚蠢,我已经将其更改为删除!
但是在做完这一切之后,出现了找不到rm的错误,可以在以下包中找到:coreutils。所以我尝试了 apt-get install coreutils 但它说它已经安装了。
所以我先用touch /bin/rm,然后用chmod +x /bin/rm。
之后就出现了这个问题!
编辑:问题是/bin/rm 文件是空的,所以我设置了一个虚拟机并将所需的文件复制到服务器!
【问题讨论】:
-
请出示
ls -l test2的截图 -
type rm打印什么?rm可能是一个损坏的别名或 shell 函数。 -
还是
which rm? -
@JonTaylor:对目录缺乏执行权限会阻止您访问(读取)目录中的文件。我认为这不会阻止您删除文件;目录缺少写权限肯定会阻止您删除文件。
-
touch /bin/rm-- 您创建了一个名为rm的空脚本。你正在调用那个脚本,一个什么都不做的脚本。touch不是缺少可执行文件的答案!
标签: bash shell ubuntu-16.04 rm