suivi du dernier fichier modifié et surveillance des nouveaux fichiers dans bash

Je peux faire la tail -f le dernier fichier modifié en utilisant ls --sort=time | head -1 | xargs tail -f ls --sort=time | head -1 | xargs tail -f ls --sort=time | head -1 | xargs tail -f mais je cherche quelque chose qui pourrait également exécuter la première partie en continu, c.-à-d. J’ai pensé à utiliser la commande watch mais cela ne semble pas fonctionner correctement avec tail -f

Il semble que vous ayez besoin de quelque chose comme ceci:

 #!/bin/bash TAILPID=0 WATCHFILE="" trap 'kill $(jobs -p)' EXIT # Makes sure we clean our mess (background processes) on exit while true do NEWFILE=`ls --sort=time | head -n 1` if [ "$NEWFILE" != "$WATCHFILE" ]; then echo "New file has been modified" echo "Now watching: $NEWFILE"; WATCHFILE=$NEWFILE if [ $TAILPID -ne 0 ]; then # Kill old tail kill $TAILPID wait $! &> /dev/null # supress "Terminated" message fi tail -f $NEWFILE & TAILPID=$! # Storing tail PID so we could kill it later fi sleep 1 done