es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Tmux: ¿cómo utilizar la fecha y hora actual en el nombre del archivo de save-buffer?

¿Cómo podemos añadir la fecha y hora actual al guardar el historial del panel con save-buffer?
Lo que necesito/intenté hacer:

> capture-pane -S - -E - ; save-buffer "$HOME/logs/tmux/tmux-saved.#{pane_start_command}-#(date '+%b.%d.%Y-%H:%M:%S').log"; delete-buffer'

-> No funciona, la parte de la fecha regresa vacía…

Puedo utilizar el mismo formato #(date) para, por ejemplo, establecer el pane-border-format :

> set -g pane-border-format "#{pane_index} #(date)"  / Funciona bien

Una posible solución sería, supongo, almacenar la fecha y hora en una variable local de tmux primero y luego usarla con save-buffer, pero no he logrado descubrir cómo almacenar la salida de un comando de shell en una variable de tmux…

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para agregar la fecha y hora actual al guardar el historial del panel con save-buffer en tmux, puedes utilizar el siguiente comando:

    capture-pane -S - -E - ; save-buffer "$HOME/logs/tmux/tmux-saved.#(date +'%b.%d.%Y-%H:%M:%S').log"; delete-buffer
    

    La parte date +'%b.%d.%Y-%H:%M:%S' formateará la fecha y hora en el formato deseado. Sin embargo, según el código proporcionado, la parte de la fecha devuelve vacío. Una solución podría ser almacenar la salida del comando date en una variable local de tmux antes de utilizarla con save-buffer. Para almacenar la salida de un comando de shell en una variable de tmux, puedes utilizar el comando run-shell con la opción -b para ejecutar el comando en segundo plano, y capture-pane con la opción -p para capturar la salida:

    # almacenar la fecha y hora actual en una variable de tmux
    run-shell "tmux set-environment -g TMUX_CURRENT_DATE \"$(date +'%b.%d.%Y-%H:%M:%S')\"" \; capture-pane -S - -E -
    # guardar el buffer del panel con la fecha y hora
    save-buffer "$HOME/logs/tmux/tmux-saved.#{$TMUX_CURRENT_DATE}.log"
    

    Esto almacenará la fecha y hora actual en una variable global de tmux llamada TMUX_CURRENT_DATE y la utilizará con save-buffer para agregar la fecha y hora al nombre de archivo.

Comments are closed.