Escribo el siguiente comando para eliminar todos los archivos que tienen más de 7 días, pero no funciona:
find /media/bkfolder/ -mtime +7 -name'*.gz' -exec rm {} \;
¿Cómo puedo eliminar estos archivos?
command-line
delete
find
rm
Malihe Pakyari
fuente
fuente

namey'*.gz'.Respuestas:
Como @Jos señaló que te perdiste un espacio entre
namey'*.gz'; También para acelerar el uso de comandos-type fopción de ejecutar el comando en f iles solamente.Entonces el comando fijo sería:
Explicación:
find: El comando UNIX para encontrar f iles / d irectories / l tintas y etc./path/to/: el directorio para comenzar su búsqueda.-type f: solo busca archivos.-name '*.gz': enumera los archivos que terminan en.gz.-mtime +7: solo considere los que tienen un tiempo de modificación mayor a 7 días.-execdir ... \;: para cada resultado encontrado, realice el siguiente comando en....rm -- '{}': eliminar el archivo; la{}parte es donde se sustituye el resultado de la búsqueda de la parte anterior.--significa que los parámetros de fin de comando evitan el error de solicitud para aquellos archivos que comienzan con guión .Alternativamente, use:
Del hombre encuentra :
Lo cual es un poco más eficiente, porque equivale a:
Opuesto a:
como en el
-execmétodoUn comando alternativo y también más rápido es usar el
+terminador de exec en lugar de\;:Este comando se ejecutará
rmsolo una vez al final en lugar de cada vez que se encuentre un archivo y este comando es casi tan rápido como usar la-deleteopción que se muestra en modernofind:fuente
-deleteal final? ¿Por qué meterse con el+o\;?Tenga cuidado al eliminar archivos con find. Ejecute el comando con -ls para verificar lo que está eliminando
find /media/bkfolder/ -mtime +7 -name '*.gz' -ls. Luego, abra el comando del historial y agregue-exec rm {} \;Limite el daño que puede hacer un comando de búsqueda. Si desea eliminar archivos de un solo directorio,
-maxdepth 1evita que find recorra los subdirectorios o busque en el sistema completo si escribe/media/bkfolder /.Otros límites que agrego son argumentos de nombre más específicos
-name 'wncw*.gz', como agregar un tiempo más reciente-mtime -31y citar los directorios buscados. Estos son particularmente importantes si está automatizando limpiezas.find "/media/bkfolder/" -maxdepth 1 -type f -mtime +7 -mtime -31 -name 'wncw*.gz' -ls -exec rm {} \;fuente