mover comando en Linux para mover varios archivos de la misma extensión pero de diferente año

mover comando en Linux para mover varios archivos de la misma extensión pero de diferente año

Tengo unos 500 archivos .txt del año 2013 al 2015 colocados en una carpeta y necesito mover todos los archivos del año 2013 y 2014 a otra carpeta.

Respuesta1

Suponiendo que "del año 2013 y año 2014" significa "con fecha de modificación en 2013/2014", puede obtener la lista de archivos con:

stat -c '%y %n' * | grep -v '^2015' | cut -d " " -f 4-

Qué hace esto:

estadística -c '%y %n'

Imprimir la hora y el nombre del archivo de la última modificación

*

De todos los archivos en la carpeta

grep -v '^2015'

Excluir los de 2015

cortar -d " " -f 4-

Finalmente elimine la marca de tiempo, dejando solo el nombre del archivo (suponiendo que no tenga nombres de archivo extraños con nuevas líneas incrustadas)

Luego puede procesar los archivos con una herramienta como xargs, o incluso un bucle for (si los caracteres lo permiten), para moverlos a la carpeta deseada.

Respuesta2

Si esos archivos tienen el año en sus nombres, es bastante simple. Si estás familiarizado con el terminal, aquí te dejamos un ejemplo.

Digamos que desea mover todos los archivos de 2013 a una carpeta llamada '2013files', y su nombre es algo así como '2013 cosas.txt' o 'enero 2013.txt'.

Ve a tu carpeta

cd /path/to/your/folder/

Crea la carpeta donde quieres mover tus archivos

mkdir 2013files

Luego mueva todos los archivos con '2013' en sus nombres

rename  ./*2013*.txt  ./2013files

IMPORTANTE: antes de usar el comando 'renombrar', use 'cp' en su lugar, para asegurarse de no haber escrito mal nada, o puede terminar con un solo archivo.

IMPORTANTE (2): haz una copia de seguridad de tus archivos, siempre, antes que nada

información relacionada