2010-09-17 4 views
6

Команда, которую я выполнил в cygwin, собрала кучу файлов. Теперь я не могу удалить их. Опуская большая часть продукции «LS», вот что я имею дело с:Undeletable file in cygwin

% 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?

+0

Не относится к SO ... – meagar

+1

У меня было это раньше, но я не помню, какая машина это сделала. Я «написал это», поскольку Cygwin не работает с NTFS должным образом. Какую ОС вы используете? – ericp

+0

«Вопросы об общем компьютерном оборудовании и программном обеспечении не относятся к теме для переполнения стека, если только они не связаны напрямую с инструментами, используемыми в основном для программирования ...» Итак, на основании этого я думаю, что * * принадлежит SO. –

ответ

0

Попытки использовать chown и chmod, даже как root, не удалось (я не помню ошибку).

Я уверен, что мой диск в порядке. Я ежедневно запускаю DiskCheckup для сильной истории настроек SMART и проверял его сегодня утром. Не стоит беспокоиться.

С оригинальной проблемой и сообщением я занят и только что вернулся к тому же локальному окну оболочки. Эти файлы исчезли. Это была локальная оболочка cygwin на моем ноутбуке, поэтому я знаю, что никто больше «не помог». Странный. Эти .txt-файлы просто не были там.

Мне все еще интересно, что могло бы заставить ls выводить все вопросительные знаки, подобные этому для всех метаданных файла, за исключением имени файла. Но основная проблема решена.

+1

Легко. Файл, который терпит неудачу stat (2), потому что он на самом деле не существует или имеет ожидающую операцию удаления. – Joshua

0

Как администратор, это должно решить:

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

Если нет, то, возможно, ошибки на диске.

+0

chown не работает с сообщением об ошибке «Доступ запрещен» в моем случае. –

11

У меня была такая же проблема, и установил ее следующим образом (под Win7):

Открыть ЦМД окна (Запуск от имени администратора)

takeown/п/DRIVE: \ PATH

Icacls DRIVE: \ PATH/даровать USERNAME: F/T

где USERNAME ваш win7 имя пользователя, под которым вы работаете в этом.

Также убедитесь, что cron.exe не работает для пользователя USERNAME или SYSTEM (может быть проверен из TaskManager) и что никакие программы из cygwin не запущены.

Как только все было проверено и выполнено, вы сможете удалить свои файлы.

Надеется, что это помогает,

Жан

+0

Спасибо, Жан. Я не запускаю Win7, но, возможно, ваше решение поможет другим. – MykennaC

+0

Работал для меня в файлах с Windows 7 - я не мог удалить 2 файла, принадлежащих jane smith под/etc/group и/etc/passwd, несмотря на то, что был администратором, но это сделало трюк! – ggb667

+0

Спасибо, это сработало для меня. –

5

У меня есть воспроизводимый случай и ни один из того, что предлагается здесь не помогает из-за разрешения ограничений.

Под sygwin:

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

Попытка взять владельца от администратора CMD консоль:

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

Попытка удалить из администратора CMD консоль:

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

также не может измените владельца из графического интерфейса Windows.Он жалуется, что у вас должны быть разрешения на чтение.

--- ПОСТАНОВИЛИ ---

Наконец, мне удалось удалить его, введя команду CMD с администрации привилегии и выполнить:

rm -r <dir> 

СОВЕТ: Вы должны убедитесь, что каталог не используется вообще. Вы можете использовать procmon, чтобы найти вас, который блокирует этот каталог.

+1

У меня тоже была такая же проблема, и ни одно из предыдущих решений не работало, но это сработало. Благодаря! – Kosha

+0

Как вы запускали консоль администратора cmd из Cygwin? –

+0

@UmberFerrule Вы не из cygwin - найдите его с помощью меню «Пуск», щелкните правой кнопкой мыши и выберите «Run as adminaistrator», –