【问题标题】:Linux - Unable to remove directory that existLinux - 无法删除存在的目录
【发布时间】:2017-03-07 04:40:02
【问题描述】:

今天尝试清理 vim 捆绑文件并进入隐藏在我无法删除的捆绑包之一下的这个目录。

~/.vim/目录下运行rm -rf,输出如下:

 ~/.vim/bundle $ rm -rf YouCompleteMe/third_party/ycmd/ycmd/tests/testdata/

rm: 无法删除 ‘YouCompleteMe/third_party/ycmd/ycmd/tests/testdata/’: 目录不为空

于是我进入目录查看:

 ~/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/testdata $ l
 total 12
 drwxrwxrwx 3 syan51 general 4096 Oct 11 17:44 .
 drwxrwxr-x 3 syan51 general 4096 Oct 11 17:44 ..
 drwx------ 2 syan51 general 4096 Oct 11 17:44 неприличное слово

然后我尝试明确删除此目录:

~/.vim/bundle/YouCompleteMe/third_party/ycmd/ycmd/tests/testdata $ rm -r ./неприличное\ слово/
rm: remove directory ‘./неприличное слово/’? y
rm: cannot remove ‘./неприличное слово/’: No such file or directory

我尝试了chmodrm -ri -- *,而是删除了testdata,但都没有奏效。我试过mvcp,都抱怨没有这样的文件或目录。

(旁注:任何人都可以解释目录名称的含义吗??)

【问题讨论】:

  • whoami 的结果是什么?
  • 找到 . -exec rm -rf {} \; ?
  • @Sundeep 它只是打印我的用户名@GeethanjaliEswaran find: missing argument to -exec'`

标签: linux shell filesystems rm


【解决方案1】:

尝试使用 strace rm -r ./неприличное\ слово/ 看看是什么系统调用失败以及错误是什么,也许会有所帮助。

“неприличное слово”的意思是“坏/粗鲁的词”。

【讨论】:

    【解决方案2】:

    切换到root,然后尝试

    rm -rf YouCompleteMe/third_party/ycmd/ycmd/tests/testdata/
    

    【讨论】:

    • 很遗憾我在合作环境中所以没有root权限
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多