2010-09-17 14 views
6

Ein Befehl, den ich in Cygwin ausgeführt habe, hat eine Reihe von Dateien abgesprengt. Jetzt kann ich sie nicht löschen. Das Weglassen der größten Teil des Ausgangs ‚ls‘, hier ist das, was mit mir zu tun habe:Nicht löschbare Datei 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 

Die .text Datei ist normal. Die .txt-Datei (Verzeichniseintrag sowieso) ist offensichtlich abgespritzt. Irgendwelche Ideen, wie man die .txt-Datei löscht?

+0

Gehört nicht zu SO ... – meagar

+1

Ich hatte das schon mal, aber ich erinnere mich nicht, welche Maschine das gemacht hat. Ich habe es "abgeschrieben", da Cygwin nicht richtig mit NTFS arbeitet. Welches Betriebssystem verwenden Sie? – ericp

+0

"Fragen zu allgemeiner Computerhardware und -software sind für Stack Overflow off-topic, es sei denn, sie betreffen direkt Tools, die hauptsächlich zum Programmieren verwendet werden ..." Also, basierend darauf denke ich * gehört * zu SO. –

Antwort

0

Versuche, chown und chmod, auch als root, zu verwenden, scheiterten (ich erinnere mich nicht an den Fehler).

Ich bin mir ziemlich sicher, dass meine Festplatte in Ordnung ist. Ich führe DiskCheckup täglich für eine starke Geschichte von SMART Einstellungen durch und überprüfte es heute morgen. Keine Sorgen da.

Seit dem ursprünglichen Problem und Post, ich bin beschäftigt, und gerade jetzt wieder zu diesem lokalen Shell-Fenster. Diese Dateien waren weg. Dies war eine lokale Cygwin-Shell auf meinem Laptop, also weiß ich, dass niemand sonst "geholfen" hat. Seltsam. Diese .txt-Dateien waren einfach nicht mehr da.

Ich bin immer noch neugierig, was ls veranlassen würde, alle Fragezeichen wie das für alle Dateimetadaten auszugeben, außer für den Dateinamen. Aber das Hauptproblem ist gelöst.

+1

Einfach. Datei, bei der stat (2) fehlschlägt, weil sie nicht vorhanden ist oder eine ausstehende Löschoperation ausgeführt wird. – Joshua

0

Als admin, sollte dieses Problem beheben:

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

Wenn nicht, können Sie Festplattenfehler haben.

+0

chown schlägt mit der Meldung "Zugriff verweigert" in meinem Fall fehl. –

11

hatte ich das gleiche Problem und reparierte es wie folgt (unter Win7):

Öffnen ein cmd Fenster (als Administrator ausführen)

takeown/r/f Laufwerk: \ Pfad

icacls Laufwerk: \ Pfad/erteilen NUTZERNAME: F/T

wo Benutzername Ihr win7 Benutzernamen, unter dem Sie diese ausgeführt werden.

Stellen Sie außerdem sicher, dass cron.exe NICHT für Benutzer USERNAME oder SYSTEM (kann vom TaskManager aus überprüft werden) ausgeführt wird und keine Programme von Cygwin ausgeführt werden.

Sobald alles überprüft und getan wurde, sollten Sie in der Lage sein, Ihre Dateien zu löschen.

hoffe, das hilft,

Jean

+0

Danke, Jean. Ich betreibe Win7 nicht, aber vielleicht hilft Ihre Lösung anderen, die es sind. – MykennaC

+0

Arbeitete für mich auf Windows 7-Dateien - Ich konnte nicht löschen 2 Dateien von Jane Smith unter/etc/group und/etc/passwd, obwohl ein Administrator, aber dies hat den Trick! – ggb667

+0

Danke, es hat für mich funktioniert. –

5

Ich habe einen reproduzierbaren Fall und keiner von dem, was hier vorgeschlagen wird, hilft aufgrund von Berechtigungen Einschränkungen.

Unter sygwin:

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

Der Versuch, den Besitzer von einem Admin cmd Konsole zu nehmen:

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

Der Versuch, von einem Admin cmd-Konsole zu löschen:

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

Kann nicht auch Ändern Sie den Besitzer von der Windows-GUI.Es beschwert sich, dass Sie Berechtigungen gelesen haben sollten.

--- --- RESOLVED

Schließlich habe ich es geschafft, es zu löschen, indem Sie einen cmd Befehl mit Verwaltung Privilegien eingeben und ausführen:

rm -r <dir> 

TIPP: Sie müssen Stellen Sie sicher, dass das Verzeichnis überhaupt nicht verwendet wird. Sie können das procmon verwenden, um Sie zu finden, der dieses Verzeichnis sperrt.

+1

Ich hatte auch das gleiche Problem und keine der vorherigen Lösungen funktionierte, aber das funktionierte. Vielen Dank! – Kosha

+0

Wie hast du eine Admin-Cmd-Konsole von Cygwin gestartet? –

+0

@UmberFerrule Sie nicht von Cygwin - finden Sie es über das Startmenü, klicken Sie mit der rechten Maustaste und wählen Sie "Als Administrator ausführen" –