2010-09-17 11 views
6

Un comando que ejecuté en cygwin remató un montón de archivos. Ahora no puedo borrarlos. La omisión de la mayor parte de la salida de 'ls', esto es lo que estoy tratando con:Archivo indeleble en 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 

El archivo .text es normal. El archivo .txt (entrada de directorio de todos modos) es obviamente una manguera. ¿Alguna idea sobre cómo eliminar el archivo .txt?

+0

No pertenece a SO ... – meagar

+1

Tuve eso antes, pero no recuerdo qué máquina lo hizo. Lo "cancelé" porque Cygwin no funciona correctamente con NTFS. ¿Qué sistema operativo estás usando? – ericp

+0

"Las preguntas sobre el hardware y el software de cómputo general están fuera del tema de Stack Overflow a menos que involucren directamente herramientas utilizadas principalmente para la programación ..." Por lo tanto, en base a eso, creo que * pertenece * a SO. –

Respuesta

0

Intentos de utilizar chown y chmod, incluso como raíz, fallaron (no recuerdo el error).

Estoy bastante seguro de que mi disco está bien. Ejecuto DiskCheckup diariamente para obtener un historial sólido de configuraciones INTELIGENTES y lo revisé esta mañana. No hay preocupaciones allí.

Desde el problema original y la publicación, me puse ocupado, y acabo de regresar a la misma ventana de shell local. Esos archivos ya no estaban. Este fue un shell cygwin local en mi computadora portátil, así que sé que nadie más "ayudó". Extraño. Esos archivos .txt simplemente ya no estaban allí.

Sigo sintiendo curiosidad por lo que causaría que ls produjera todos los signos de interrogación, como los de todos los metadatos de archivos, excepto el nombre del archivo. Pero el problema principal está resuelto.

+1

Fácil. Archivo que está fallando en stat (2) porque no está realmente allí o tiene una operación de eliminación pendiente. – Joshua

0

Como administrador, esto debería solucionar:

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

Si no es así, es posible que tenga errores de disco.

+0

chown falla con el mensaje "Error de acceso de acceso" en mi caso. –

11

que tenían el mismo problema y lo arreglaron la siguiente manera (en Windows 7):

Abrir una ventana cmd (Ejecutar como administrador)

takeown/r/f unidad: \ ruta

icacls unidad: \ ruta/conceder NOMBRE DE USUARIO: F/T

donde usuario es su nombre de usuario win7 bajo el cual se está ejecutando esto.

También asegúrese de que cron.exe NO se está ejecutando para el usuario USERNAME o SYSTEM (se puede comprobar desde el Administrador de tareas) y que no se están ejecutando programas de cygwin.

Una vez que todo ha sido verificado y hecho, usted debería poder eliminar sus archivos.

Espero que esto ayude,

Jean

+0

Gracias, Jean. No estoy ejecutando Win7, pero tal vez su solución ayudará a otros que sí lo son. – MykennaC

+0

Funcionó para mí en los archivos de Windows 7: no pude eliminar 2 archivos propiedad de jane smith en/etc/group y/etc/passwd, a pesar de ser administrador, ¡pero esto fue suficiente! – ggb667

+0

Gracias, funcionó para mí. –

5

tengo un caso reproducible y ninguno de lo que se sugiere aquí ayuda debido a las restricciones de permisos.

Bajo sygwin:

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

Tratando de tomar el propietario de una consola de administrador cmd:

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

Tratando de eliminar de una consola de administrador cmd:

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

No se puede también cambiar el propietario de la GUI de Windows.Se queja de que deberías haber leído permisos.

--- --- RESUELTOS

Por último, he conseguido eliminarla mediante la introducción de un comando cmd con administración privilegios y ejecutar:

rm -r <dir> 

TIP: Usted tiene que asegúrese de que el directorio no se use en absoluto. Puede usar el procmon para encontrarlo que bloquea ese directorio.

+1

Yo también tuve el mismo problema y ninguna de las soluciones anteriores funcionaba, pero funcionó. ¡Gracias! – Kosha

+0

¿Cómo ejecutó una consola de cmd de administración de Cygwin? –

+0

@UmberFerrule No lo haga de cygwin: encuéntrelo utilizando el menú Inicio, haga clic con el botón derecho y seleccione "Ejecutar como administrador" –