Necesito eliminar de una carpeta todos los archivos anteriores a un archivo específico.
Ejecutando bash en CentOS 7.
Tengo una solución para esto, pero creo que debería haber una forma más elegante de hacerlo:
reference_file=/my/reference/file
get_modify_time()
{
stat $1 | grep -Po "Modify: \K[0-9- :]*"
}
pit=$(get_modify_time $reference_file)
for f in /folder/0000* ; do [[ "$pit" > "$(get_modify_time $f)" ]] && rm $f ; done
bash
shell-script
centos
csny
fuente
fuente
-maxdepth 1
para mantener la búsqueda no recursiva! -newer
significa "no más nuevo", entonces "más viejo o la misma edad "; el archivo en sí coincidirá si está en la ruta que sefind
ve, solo algo a tener en cuenta.! -name reference
(vea la tercera viñeta).comparar los tiempos de modificación de archivos a
test
, usando-nt
(más nuevo que) y-ot
(mayor que) los operadores:fuente