2010-09-17 4 views
6

Une commande que j'ai exécutée dans cygwin a arrosé un tas de fichiers. Maintenant, je ne peux pas les supprimer. Omettre plus de la sortie « ls », voici ce que je fais face à:Fichier undeletable dans 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 

Le fichier .text est normal. Le fichier .txt (entrée de répertoire de toute façon) est évidemment arrosé. Des idées sur la façon d'obtenir le fichier .txt supprimé?

+0

N'appartient pas sur SO ... – meagar

+1

Je l'avais déjà fait auparavant, mais je ne me souviens pas quelle machine l'a fait. Je l'ai "effacé" car Cygwin ne fonctionnait pas correctement avec NTFS. Quel système d'exploitation utilisez-vous? – ericp

+0

"Les questions sur le matériel informatique général et les logiciels sont hors-sujet pour Stack Overflow à moins qu'ils n'impliquent directement des outils utilisés principalement pour la programmation ..." Donc, d'après cela, je pense que * SO * appartient à SO. –

Répondre

0

Les tentatives d'utilisation de chown et de chmod, même en tant que root, ont échoué (je ne me souviens pas de l'erreur).

Je suis assez sûr que mon disque est bon. Je lance DiskCheckup tous les jours pour un historique des paramètres SMART, et je l'ai vérifié ce matin. Pas de soucis là-bas.

Depuis le problème et la publication d'origine, je suis occupé, et je viens tout juste de revenir à cette même fenêtre shell locale. Ces fichiers étaient partis. C'était un shell cygwin local sur mon ordinateur portable, donc je sais que personne d'autre "aidé". Étrange. Ces fichiers .txt n'étaient plus là. Je suis toujours curieux de savoir ce qui ferait que ls produise tous les points d'interrogation comme cela pour toutes les métadonnées de fichier, à l'exception du nom de fichier. Mais le problème principal est résolu.

+1

Facile. Fichier qui échoue stat (2) car il n'est pas vraiment là ou a une opération de suppression en attente. – Joshua

0

en tant qu'administrateur, cela devrait fixer:

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

Sinon, vous pourriez avoir des erreurs de disque.

+0

chown échoue avec le message "Accès refusé erreur" dans mon cas. –

11

J'ai eu le même problème et fixé comme suit (sous Win7):

Ouvrir une Vitres cmd (Exécuter en tant qu'administrateur)

takeown/r/f DRIVE: \ CHEMIN

icacls DRIVE: \ PATH/accorder uSERNAME: F/T

où NOMUTILISATEUR est votre nom d'utilisateur win7 sous lequel vous exécutez ce.

Assurez-vous également que cron.exe n'est PAS en cours d'exécution pour l'utilisateur USERNAME ou SYSTEM (peut être vérifié à partir du TaskManager) et qu'aucun programme de cygwin n'est en cours d'exécution.

Une fois que tout a été vérifié et fait, vous devriez pouvoir supprimer vos fichiers.

Hope this helps,

Jean

+0

Merci, Jean. Je ne cours pas Win7, mais peut-être que votre solution aidera les autres. – MykennaC

+0

Travaillé pour moi sur Windows 7 fichiers - Je ne pouvais pas supprimer 2 fichiers appartenant à jane smith sous/etc/group et/etc/passwd, en dépit d'être un administrateur, mais cela a fait l'affaire! – ggb667

+0

Merci, ça a marché pour moi. –

5

J'ai un cas reproductible et rien de ce qui est suggéré ici aide en raison des restrictions des autorisations.

Sous sygwin:

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

Essayer de prendre le propriétaire d'une console cmd admin:

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

Essayer de supprimer à partir d'une console cmd admin:

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

Impossible aussi changer le propriétaire de l'interface graphique Windows.Il se plaint que vous devriez avoir des autorisations de lecture.

--- --- RÉSOLU

Enfin, j'ai réussi à le supprimer en entrant une commande cmd avec administration privilèges et exécuter:

rm -r <dir> 

TIP: Vous devez assurez-vous que le répertoire n'est pas utilisé du tout. Vous pouvez utiliser le procmon pour trouver qui verrouille ce répertoire.

+1

Moi aussi j'avais le même problème et aucune des solutions précédentes ne fonctionnait, mais cela a fonctionné. Merci! – Kosha

+0

Comment avez-vous lancé une console admin cmd depuis Cygwin? –

+0

@UmberFerrule Vous n'avez pas de cygwin - trouvez-le en utilisant le menu Démarrer, faites un clic droit et choisissez "Exécuter en tant qu'administrateur" –