¿Cómo puedo eliminar este archivo? Creo que es un archivo corrupto en un sistema de archivos VFAT.
????????? ? ? ? ? ? 100.jpg
Respuesta1
Una posibilidad es averiguar el inode
número del archivo, lo cual puedes hacer ejecutando ls -i
. Esto devolverá dos columnas: la primera es el inodo y la segunda es el nombre del archivo. Luego puede usar el find
comando para seleccionar solo el archivo con ese inodo específico y eliminarlo.
sh-4.1$ ls -i .
17921 somefile.ods
169 someotherfile.conf
305 -????????? ? ? ? ? ? 100.jpg
18048 yetanotherfile.jpg
sh-4.1$ find . -maxdepth 1 -inum 305 -ok rm '{}' \;
< rm ... -????????? ? ? ? ? ? 100.jpg > ? y
Dado que lo más probable es que el inodo sea exclusivo del archivo (suponiendo que no haya enlaces físicos), esto le permitirá eliminarlo sin los riesgos inherentes a los comodines. Las opciones maxdepth
y ok
del comando de búsqueda hacen que sea aún menos probable que encuentres el archivo equivocado por accidente.
Respuesta2
No estoy seguro de si alguna de las respuestas aquí realmente tuvo el problema que informó Stig. Me encontré con este problema en mi sistema de archivos ext4:
# ls -l /tmp/dependencies/
ls: cannot access /tmp/dependencies/easy-rsa-master: No such file or directory
total 0
?????????? ? ? ? ? ? easy-rsa-master
# ls -i /tmp/dependencies/
ls: cannot access /tmp/dependencies/easy-rsa-master: No such file or directory
? easy-rsa-master
# rm -r /tmp/dependencies
rm: descend into directory ‘dependencies’? y
rm: cannot remove ‘/tmp/dependencies/easy-rsa-master’: No such file or directory
rm: remove directory ‘dependencies’? y
rm: cannot remove ‘dependencies’: Directory not empty
El archivo en sí estaba dañado junto con sus atributos. ls -i muestra claramente que no hay ID de inodo. Ningún uso de rm funcionará. Incluso rm -rf ingresa al directorio e intenta eliminar el archivo directamente (y silenciosamente).
Mi solución fue recrear el directorio sin el archivo ofensivo. Luego puede mover el directorio a otra ubicación, como /tmp. Desaparecerá después de reiniciar o cada vez que su distribución limpie el directorio /tmp (con suerte).
Respuesta3
Recomendaría una versión un poco más defensiva de la sugerencia de Chao:
rm -i ./*100.jpg*
Las -i
marcas rm
le preguntarán si desea eliminar o no cada archivo que coincida con el comodín; esto garantiza que no eliminará accidentalmente otros archivos también. Y el líder ./
garantiza que todos los nombres de archivos serán tratados comonombres de archivosy no más opciones rm
(parece que podría tener un guión inicial allí, por eso es importante).
Es posible, por cierto, que haya personajes invisibles.adentrola cadena "100.jpg". Si lo anterior le muestra un mensaje de error como " rm: ./*100.jpg*: not found
", ese es el motivo. ls -1fw | cat -v
puede ser útil.
Respuesta4
Podrías intentarlo
rm *100.jpg*
Los? Son signos de interrogación literales o caracteres que no tienen sentido. De cualquier manera, el sistema operativo en sí (y el shell) generalmente pueden eliminar el archivo, si el sistema de archivos no está bloqueado.
Si el sistema de archivosesSi está en mal estado, eliminar cosas puede empeorarlo. Le recomiendo que inicie Windows para escanear la unidad y eliminar el archivo allí si puede.