Lo más cerca que he llegado es
# rm /path/to/directory/*.*
pero eso no funciona para archivos que no tienen una extensión ...
command-line
rm
usuario784637
fuente
fuente
shopt -s dotglob
antes de ejecutarlosrm (...)
all files
;)*.*
significa todos los archivos que contienen un.
lugar en el nombre*a*
significa cero o más caracteres,a
seguidos de cero o más caracteres. Sería coincidir con los nombres de archivohappy
,apple
,a
ola
.Para eliminar la carpeta con todo su contenido ( incluidas todas las carpetas interiores ):
Para eliminar todo el contenido de la carpeta ( incluidas todas las carpetas interiores ) pero no la carpeta en sí:
o
si desea asegurarse de que también se eliminen los archivos / directorios ocultos.
Para eliminar todos los "archivos" del interior de una carpeta ( sin eliminar las carpetas interiores ):
Advertencia : si tiene espacios en su camino, asegúrese de usar siempre comillas.
es equivalente a 2
rm -rf
llamadas separadas :Para evitar este problema, puede usar
'
comillas simples'
( no expande las variables de shell) o"
comillas dobles"
( expande las variables de shell):Dónde:
rm
- significa " eliminar "-f
- significa " forzar ", que es útil cuando no desea que se le pregunte / pregunte si desea eliminar un archivo, por ejemplo.-r
- significa " recursivo ", lo que significa que desea ir recursivamente a cada carpeta y eliminar todo.fuente
rm -rf /path/to/directory/*
no elimina un archivo oculto en la carpeta, por ejemplo.htaccess
. Tal vezrm -rf /path/to/directory/.
? No lo he intentado.rm -rf /path/to/directory/.*
solo elimina los archivos ocultos en el directorio especificado. Mirando el comentario de @ danjjl sobre la respuesta de @ Rinzwind, para eliminar también los archivos ocultos, ejecuteshopt -s dotglob
antes de ejecutarrm -rf /path/to/directory/*
.rm -rf /path/to/directory/.*
en mi sistema causó la eliminación de elementos en/path/to
. Afortunadamente, acababa de hacer una copia de seguridad de todos mis datos en un disco separado. ¡No hace falta decir que NO ejecute el comando arm -rf /path/to/directory/.*
menos que haya hecho una copia de seguridad de toda su computadora en una ubicación separada / segura!Para eliminar todos los archivos en el directorio (incluidos los archivos ocultos y subdirectorios) ejecute:
fuente
./
y../
, pero aún eliminará los archivos ocultos.rm -r $(pwd)/{*,.*}
Si desea eliminar solo los archivos en el directorio / ruta / al / puede hacerlo
o
Puede hacer cargas con
find
, la ventaja es que puede enumerar lo que se encuentra sin canalizarlo pararm
que pueda ver lo que se eliminará antes de comenzar.fuente
GNU find
como-delete
predicado Si todavía desea usar-exec
, la sustitución\;
con+
reunirárm
llamadas, aumentando la eficiencia.Para eliminar todos los archivos y directorios (incluidos los ocultos ) en un directorio, puede intentar lo siguiente:
elimine la carpeta, luego vuelva a crearla
utilizar
find
Aquí especificamos
-mindepth 1
para excluir el directorio dir_name en sí.Eche un vistazo al siguiente enlace:
https://unix.stackexchange.com/questions/12593/how-to-remove-all-the-files-in-a-directory
fuente
Si también desea eliminar todos los subdirectorios y el directorio en sí, puede usar
rm -rf /path/to/directory
. Pero siempre verifique dos veces su línea antes de presionar Intro, tambiénrm -rf
puede causar muchos estragos, por ejemplo, si inserta accidentalmente un espacio después de la primera barra oblicua mientras tiene permisos de superusuario ...fuente
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..
que es ruidoso, confuso y molesto.Algunos de ellos olvidan los archivos ocultos (archivos que comienzan con un punto).
No eliminan en un orden correcto (el más profundo primero) para permitir la eliminación del directorio.
Descienden a otros sistemas de archivos (montados), que a menudo no son deseados.
Son difíciles de extender adecuadamente con parámetros adicionales (más sobre eso a continuación).
Entonces, para RECURSARMENTE eliminar todos los archivos Y carpetas en un directorio, haga esto:
Tenga en cuenta que agregué un
-xdev
argumento para evitar descender a monturas (como/proc
etc.).¿Por qué no
-depth
o-delete
?A pesar de que la gente me rechaza constantemente por esto, esos métodos tienen un inconveniente: no parece que sean lo suficientemente extensibles como para permitir
-prune
un subdirectorio (sin introducir más problemas). En contraste con este método, podría insertarantes del
-mindepth
argumento para excluirsubdir
que se elimine su contenido.fuente
-depth
banderafind
para eso.-delete
confind
?-delete
es profundo primero. Ya está asumiendo que no es POSIXfind
con el-printf
, por lo que podría usar-delete
o-depth -print0 | xargs -0 rm
-not \( -path "$DIR/subdir" \)
... ¿pero el mío sí? ¿Por qué?Puede
cd
ingresar al directorio y luego ejecutar el comandorm *.*
al igual que en DOS, si lo recuerda.fuente
Para eliminar el directorio actual, podría usar, por ejemplo,
rm -d ./*
-d le dice a eliminar directorios también.
fuente