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