Por lo general, haría esto mediante programación al momento de crear o mover el archivo, pero es posible activar un script cada vez que se crea o mueve un archivo a una carpeta incron
. Configure su archivo de tabulación incrontab -e
con una línea como esta, pero con sus rutas, por supuesto:
/path/to/dir0 IN_MOVED_TO,IN_CREATE /path/to/script $@/$#
Luego, en /path/to/script
escribir una acción de cambio de nombre rápido. Tenga en cuenta que la secuencia de comandos también se llamará para el nuevo archivo que cree, por lo que debe probar si el archivo ya se ha nombrado correctamente o no. En este ejemplo, verifica si el archivo tiene un número de diez dígitos durante segundos desde la época como la última parte del nombre del archivo, y si no lo tiene, lo agrega:
#!/bin/bash
echo $1 | grep -qx '.*_[0-9]\{10\}' || mv "$1" "$1_$(date +%s)"
Editar: cuando escribí esto por primera vez, tenía poco tiempo y no podía encontrar la manera de hacer bash
que el patrón coincida aquí. Gilles señaló cómo hacer esto sin invocar grep usando la coincidencia de ERE en bash:
#!/bin/bash
[[ ! ( $1 =~ _[0-9]{10}$ ) ]] && mv "$1" "$1_$(date +%s)"