Lo más cerca que he estado es
# rm /path/to/directory/*.*
pero eso no funciona para archivos que no tienen una extensión...
Lo más cerca que he estado es
# rm /path/to/directory/*.*
pero eso no funciona para archivos que no tienen una extensión...
Linux no usa extensiones. Depende del creador del archivo decidir si el nombre debe tener una extensión. Linux mira los primeros bytes para averiguar con qué tipo de archivo está tratando.
Para eliminar todos los archivos no ocultos* en un directorio uso:
rm /path/to/directory/*
Sin embargo, esto mostrará un error para cada subdirectorio, porque en este modo solo se permite eliminar archivos.
Para eliminar todos los archivos y subdirectorios no ocultos (junto con todo su contenido) en un directorio, use:
rm -r /path/to/directory/*
* Los archivos y directorios ocultos son aquellos cuyos nombres comienzan con .
carácter (de puntos), p. ej.: .hidden-file
o .hidden-directory/
. Tenga en cuenta que, en Bash, si el dotglob
opcion (que está desactivado de forma predeterminada) está configurado, rm
también actuará sobre los archivos ocultos, ya que se incluirán cuando *
es expandido por el shell para proporcionar la lista de argumentos de nombre de archivo.
Para eliminar una carpeta con todo su contenido (incluidas todas las carpetas interiores):
rm -rf /path/to/directory
Para eliminar todas las contenido de la carpeta (incluidas todas las carpetas interiores) pero no la carpeta en sí:
rm -rf /path/to/directory/*
o, si desea asegurarse de que los archivos/directorios ocultos también se eliminen:
rm -rf /path/to/directory/{*,.*}
Para eliminar todos los & quot; archivos" del interior de una carpeta(ni eliminación de carpetas interiores):
rm -f /path/to/directory/{*,.*}
Advertencia: si tiene espacios en su ruta, asegúrese de usar siempre comillas.
rm -rf /path/to the/directory/*
es equivalente a 2 separados rm -rf
llamada:
rm -rf /path/torm -rf the/directory/*
Para evitar este problema, puede usar '
comillas simples'
(evita todas las expansiones, incluso de variables de shell) o "
comillas dobles"
(permite la expansión de variables de shell, pero evita otras expansiones):
rm -rf "/path/to the/directory/"*
Donde:
rm
- representa quitar
-f
- representa fuerza lo cual es útil cuando no desea que se le pregunte / solicite si desea eliminar un archivo, por ejemplo.-r
- representa recursivo lo que significa que desea ir recursivamente hacia abajo en cada carpeta y eliminar todo.Para eliminar todos los archivos del directorio (incluidos los archivos ocultos y los subdirectorios), ejecute:
rm -rf /path/to/directory/{*,.*}
Para eliminar todos los archivos y directorios (incluido el oculto en un directorio, puede intentar lo siguiente:
elimine la carpeta y, a continuación, vuelva a crearla
rm -rf dir_name && mkdir dir_name
utilizar find
find dir_name -mindepth 1 -delete
Aquí especificamos -mindepth 1
para excluir el propio directorio dir_name.
Echa un vistazo al siguiente enlace:
https://unix.stackexchange.com/questions/12593/how-to-remove-all-the-files-in-a-directory
Si desea eliminar solo los archivos en / path / to / directory, puede hacer lo siguiente
find /path/to/directory -type f -print0| xargs -0 rm
o
find /path/to/directory -type f -exec rm '{}' \;
Puedes hacer cargas con find
, la ventaja es que puede enumerar lo que se encuentra sin canalizarlo a rm
para que pueda ver lo que se eliminará antes de comenzar.
Si también desea eliminar todos los subdirectorios y el directorio en sí, puede usar rm -rf /path/to/directory
. Pero siempre revise su línea antes de presionar return, rm -rf
también puede causar muchos estragos, por ejemplo, si inserta accidentalmente un espacio después de la primera barra mientras tiene permisos de superusuario...
Dado que esta pregunta está constantemente en la parte superior de Google cuando la busco yo mismo:
Las otras respuestas sufren de diferentes problemas:
Algunos de ellos incluyen .
y ..
lo cual es ruidoso, confuso y molesto.
Algunos de ellos olvidan los archivos ocultos (archivos que comienzan con un punto).
No se eliminan en un orden correcto (primero el más profundo) para permitir la eliminación de directorios.
Descienden a otros sistemas de archivos (montados), lo que a menudo no es deseado.
Son difíciles de extender correctamente con parámetros adicionales (más sobre eso a continuación).
find "${DIR}" -xdev -mindepth 1 -printf "%d\t%y\t%p\0" | sort -z -r -n | cut -z -f3- | xargs -0 -r -- rm -d --
Tenga en cuenta que agregué un -xdev
argumento para evitar descender a monturas (como /proc
sucesivamente.).
-depth
o -delete
?A pesar de que la gente me rechaza constantemente por esto, esos métodos tienen una desventaja: no parece que sean lo suficientemente extensibles como para permitir -prune
crear un subdirectorio (sin introducir más problemas). En contraste con este método, puede insertar
-not \( -path "${DIR}/subdir" -prune \)
antes de la -mindepth
argumento para excluir subdir
de que se borre su contenido.
Usted puede cd
en el directorio y, a continuación, ejecute el comando rm *.*
como en DOS, si recuerdas.
Para eliminar el directorio actual, por ejemplo, puede usar rm -d ./*
-d indica que también se eliminen los directorios.
Vea la respuesta aquí, esto también puede eliminar archivos ocultos sin ninguna advertencia y eliminando el directorio en sí ubuntu - Delete contents but not directory in Linux? - Stack Overflow
No tengo suficiente reputación para agregar una respuesta real, pero cuando uso la solución shopt-s dotglob && rm /path/to/directory/*
en bash, (shopt-s dotglob && rm /path/to/directory/*)
(con paréntesis) evitará que shopt-s dotglob
se filtre más allá de este comando. (Los paréntesis ejecutan los comandos contenidos en una subcapa.)