GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo eliminar este directorio indeleble?

Descomprimí un archivo tar corrupto y logré terminar con un directorio
que no puedo eliminar,
Si trato de eliminarlo, parece que no se puede encontrar, pero ls muestra que está presente, tanto con bash como con python obtengo un comportamiento similar, excepto justo después de intentar eliminarlo con rm -rf , ls se queja de que no puede encontrarlo, luego lo enumera (ver más abajo después de rm -rf ). El find El comando muestra que el archivo está presente,
pero aún no puedo pensar en una forma de eliminarlo.
Estos son mis intentos:

Aquí ves ambos ls y find aceptamos que tenemos un directorio,

rl]$ ls
mikeaâ??cnt
rl]$ find -maxdepth 1 -type d -empty -print0  
./mikeaâcnt 

Pero no puedo borrarlo:

rl]$ find -maxdepth 1 -type d -empty -print0 |  xargs -0 rm -f -v 
rm: cannot remove `./mikeaâ302201302204cnt': Is a directory
rl]$ ls
mikeaâ??cnt

Puedo cd sin embargo, está vacío:

rl]$ cd mikeaâ^Á^Äcnt/
mikeaâ^Á^Äcnt]$ ls
mikeaâ^Á^Äcnt]$ pwd
.../rl/mikeaâcnt


mikeaâ^Á^Äcnt]$ cd ../
rl]$ ls
mikeaâ??cnt

vea a continuación que no es un archivo simple sino un directorio, más ls se comporta raro después de rm -rf dice que no puede encontrar el archivo y lo enumera inmediatamente después:

rl]$ rm mikeaâ^Á^Äcnt/
rm: cannot remove `mikeaâ302201302204cnt/': Is a directory
rl]$ rm -rf  mikeaâ^Á^Äcnt/
rl]$ ls
ls: cannot access mikeaâcnt: No such file or directory
mikeaâ??cnt
rl]$ 

Así que este es el intento con python, se encuentra el archivo, pero el nombre no es
usable como un nombre que se puede eliminar:

rl]$ python 
Python 2.6.6 (r266:84292, Jul 10 2013, 22:48:45) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import shutil
>>> os.listdir('.')
['mikeaxc3xa2xc2x81xc2x84cnt']
>>> shutil.rmtree(os.listdir('.')[0] )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib64/python2.6/shutil.py", line 204, in rmtree
    onerror(os.listdir, path, sys.exc_info())
  File "/usr/lib64/python2.6/shutil.py", line 202, in rmtree
    names = os.listdir(path)
OSError: [Errno 2] No such file or directory: 'mikeaxc3xa2xc2x81xc2x84cnt'

incluso cuando uso la función de completar con tabulación, el nombre que recoge no se puede utilizar:

rl]$ rm -rf mikeaâ^Á^Äcnt 
rl]$ ls
ls: cannot access mikeaâcnt: No such file or directory
mikeaâ??cnt

usando el nombre que Python muestra con bash obtengo esto:

rl]$ rm -rf "mikeaxc3xa2xc2x81xc2x84cnt"
rl]$ ls
ls: cannot access mikeaâcnt: No such file or directory
mikeaâ??cnt

¿Hay algo que pueda hacer para deshacerme de este directorio corrupto?
El sistema de archivos subyacente (NFS) parece funcional y no se informan otros problemas, y no he tenido tales problemas hasta el archivo tar corrupto.

EDITAR:
Aquí está usando find propio -exec opción para llamar a rm

rl]$ find -maxdepth 1 -type d -empty -exec rm -f {} ;
find: `./mikeaâ302201302204cnt': No such file or directory
rl]$ ls
ls: cannot access mikeaâcnt: No such file or directory
mikeaâ??cnt
rl]$

pero el archivo sigue ahí, (ls se queja de que no puede encontrarlo, pero luego lo muestra de todos modos)

2.ª EDICIÓN:

rl]$ find -maxdepth 1 -type d -empty -exec rm -rf {} ;
find: `./mikeaâ302201302204cnt': No such file or directory
rl]$ ls
ls: cannot access mikeaâcnt: No such file or directory
mikeaâ??cnt

El comportamiento sigue sin cambios, el archivo sigue presente

3.ª EDICIÓN:

rl]$ ls
mikeaâ??cnt
rl]$ find -maxdepth 1 -type d -empty -exec rm -rf {} + 
rl]$ ls
ls: cannot access mikeaâcnt: No such file or directory
mikeaâ??cnt

Parece que hay más en el nombre que mikeaâcnt al mirar la salida del intento de python mikeaxc3xa2xc2x81xc2x84cnt , y esta captura de pantalla:

4ª EDICIÓN:
Este es el intento con un comodín:

rl]$ echo * 
mikeaâcnt
rl]$ echo mike* 
mikeaâcnt
rl]$ rm -rf mike*
rl]$ ls
ls: cannot access mikeaâcnt: No such file or directory
mikeaâ??cnt

y mi configuración regional:

rl]$  locale
LANG=en_US.utf8
LC_CTYPE="en_US.utf8"
LC_NUMERIC="en_US.utf8"
LC_TIME="en_US.utf8"
LC_COLLATE="en_US.utf8"
LC_MONETARY="en_US.utf8"
LC_MESSAGES="en_US.utf8"
LC_PAPER="en_US.utf8"
LC_NAME="en_US.utf8"
LC_ADDRESS="en_US.utf8"
LC_TELEPHONE="en_US.utf8"
LC_MEASUREMENT="en_US.utf8"
LC_IDENTIFICATION="en_US.utf8"
LC_ALL=

5.ª edición:

rl]$ ls -i 
ls: cannot access mikeaâcnt: No such file or directory
? mikeaâ??cnt

pero también el comportamiento ha cambiado, ahora ls y cd haz esto:

rl]$ ls
ls: cannot access mikeaâcnt: No such file or directory
mikeaâ??cnt
rl]$ cd mikeaâ^Á^Äcnt 
mikeaâcnt: No such file or directory.

Esto sucedió después de los intentos de eliminación, estoy pensando que podrían ser problemas de NFS como se sugiere en una de las respuestas aquí por vinc17.

Relacionado:$PWD? (frente al directorio de trabajo actual)?

6ª EDICIÓN:
Esta es la salida de lsof y ls -a


rl]$ /usr/sbin/lsof mikeaâ^Á^Äcnt
lsof:error de estado en mikeaâxc2x81xc2x84cnt:No existe tal archivo o directorio

arriba está mal, aquí está el lsof correcto invocación:(rl es el directorio padre)

rl]$ /usr/sbin/lsof | grep mike | grep rl 
tcsh      11926   mike  cwd       DIR   0,33     4096 19569249 /home/mike/mish/rl
lsof      14733   mike  cwd       DIR   0,33     4096 19569249 /home/mike/mish/rl
grep      14734   mike  cwd       DIR   0,33     4096 19569249 /home/mike/mish/rl
grep      14735   mike  cwd       DIR   0,33     4096 19569249 /home/mike/mish/rl
lsof      14736   mike  cwd       DIR   0,33     4096 19569249 /home/mike/mish/rl
rl]$ 

rl]$ ls -a
ls: cannot access mikeaâcnt: No such file or directory
.  ..  mikeaâ??cnt

7ma edición:
move no funcionará (lo probé antes de todo esto, pero no guardé el resultado), pero tiene el mismo problema que ls y rm con el archivo.

8ª EDICIÓN:
esto está usando los caracteres hexadecimales como se sugiere:

 rl]$ ls --show-control-chars | xxd0000000:6d69 6b65 61c3 a2c2 81c2 8463 6e74 0a mikea......cnt.rl]$ rmdir $'mikea6d696b6561c3a2c281c284636e74
Linux
  1. Cómo eliminar cuentas de usuario con el directorio de inicio en Linux

  2. ¿Cómo eliminar un directorio y una carpeta en Linux?

  3. ¿Cómo Instalar R 3.3.1 En El Directorio Propio?

  4. ¿Cómo puedo eliminar recursivamente directorios vacíos en mi directorio de inicio?

  5. ¿Cómo hacer cd en un directorio con este nombre -2 (comenzando con el guión)?

Cómo eliminar un directorio en Linux

Cómo quitar (eliminar) directorio en Linux

Cómo eliminar líneas en Vim / Vi

Cómo eliminar un directorio en Ubuntu 20.04

Eliminar directorio en Linux:cómo eliminar una carpeta desde la línea de comandos

Cómo copiar un directorio en Linux