cygwin中不可删除的文件

时间:2010-09-17 22:22:32

标签: cygwin

我在cygwin中执行的命令收集了一堆文件。现在我无法删除它们。省略了大部分'ls'输出,这就是我正在处理的内容:

% ls -l
ls: cannot access WSERV001.txt: No such file or directory
-rw-r--r--  1 mccppk mkgroup-l-d   50 Sep 17 16:57 WSERV001.text
??????????? ? ?      ?              ?            ? WSERV001.txt
% rm WSERV001.txt
rm: cannot remove `WSERV001.txt': No such file or directory
% touch WSERV001.txt
touch: cannot touch `WSERV001.txt': Permission denied

.text文件是正常的。 .txt文件(无论如何目录条目)显然已经被软管了。关于如何删除.txt文件的任何想法?

4 个答案:

答案 0 :(得分:14)

我遇到了同样的问题并将其修复如下(在Win7下):

打开cmd窗口(以管理员身份运行)

  

takeown / r / f DRIVE:\ PATH

     

icacls DRIVE:\ PATH / grant USERNAME:F / T

其中USERNAME是您运行此用户的win7用户名。

还要确保cron.exe没有为用户USERNAME或SYSTEM运行(可以从TaskManager中检查)并且没有来自cygwin的程序正在运行。

完成所有操作后,您应该可以删除文件。

希望这有帮助,

答案 1 :(得分:5)

我有一个可重现的案例,由于权限限制,这里没有提出任何建议。

在sygwin下:

[Sakis@t0000000000]$ ll
total 0
drwxr-x--- 1 ???????? ???????? 0 Jul  4 02:51 t0000000000_1.db/
[Sakis@t0000000000]$

尝试从管理员cmd控制台获取所有者:

c:\t000000000
0>takeown /r /f t0000000000_1.db
ERROR: Access is denied.

尝试从admin cmd控制台中删除:

c:\t000000000
0>rmdir /S t0000000000_1.db
t0000000000_1.db, Are you sure (Y/N)? Y
Access is denied.

无法从Windows GUI更改所有者。它抱怨你应该具有读权限。

---已决定---

最后,我设法通过输入带有管理权限的 cmd 命令来删除它并执行:

rm -r <dir>

提示:您必须确保该目录完全没有使用。您可以使用procmon找到锁定该目录的人。

答案 2 :(得分:0)

尝试使用chown和chmod,即使是root,也失败了(我不记得错误)。

我很确定我的磁盘很好。我每天都会运行DiskCheckup以获取SMART设置的强大历史记录,并在今天早上进行了检查。不用担心。

由于原来的问题和帖子,我很忙,刚才回到同一个本地shell窗口。那些文件都没了。这是我笔记本电脑上的本地cygwin shell,所以我知道没有其他人“帮助”。奇怪。那些.txt文件不再存在了。

我仍然很好奇是什么会导致ls输出所有文件元数据的所有问号,除了文件名。但主要问题已经解决。

答案 3 :(得分:-1)

作为管理员,这应该解决:

chown <yourusername> WSERV001.txt
chmod 666 WSERV001.txt
rm -f WSERV001.txt

如果没有,您可能会遇到磁盘错误。