Comando/script de Linux para buscar todos los archivos en un directorio con un número de 4 dígitos

Comando/script de Linux para buscar todos los archivos en un directorio con un número de 4 dígitos

Tengo una carpeta que contiene varias otras carpetas, cada una con el nombre de este formato:

Company XYZ (1999 OneWordDescription)

Estoy intentando filtrar los que están marcados como 1995 o anteriores, para poder moverlos a otra carpeta y luego eliminarlos manualmente. La fecha de modificación/creación no ayudará, ya que todas se han modificado desde entonces y las fechas de creación simplemente no son precisas por algún motivo.

¿Qué comando o script de Linux puedo ejecutar para mover todo lo que tenga "(1995" y versiones anteriores a un directorio diferente?

Respuesta1

Para mover todas las carpetas de los años 1980 a 1995, inclusive, ejecute:

shopt -s nullglob
mv *'('{1980..1995}*/ /some/path/

El shopt -s nullglobcomando no es estrictamente necesario pero elimina los mensajes de error si falta alguno de los años.

Lo anterior utiliza expansiones de llaves {1980..1995}para generar todos los años explícitamente. Puedes ver cómo funciona la expansión de llaves usando solo una echodeclaración:

$ echo {1980..1995}
1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995

información relacionada