Une sélection de commandes Bash

Ou comment, sans un infâme clickodrome…

  • Renommer une série de fichier avec numéro d’ordre et leading zeros :
j=1 ; for i in `ls -1` ; do mv $i $(printf "%03d" ${j}).jpg ; j=$(($j+1)) ; done
  • Classer des images dans des répertoires par date :
exiv2 rename *JPG ; for i in *JPG ; do mkdir -p ${i%%_*} ; mv $i ${i%%_*} ; done

OU

Déplacement de toutes les images de dir dans un répertoire nommé “année/annéemoisjour” en se basant sur champ “DateTimeOriginal” :

exiftool '-Directory<DateTimeOriginal' -d %Y/%Y%m%d dir
  • Jouer aléatoirement des fichiers mp3 (avec gestion des noms de fichier avec des espaces) :
for i in `find . -name *mp3|sort -R|head -10|sed 's/\ /\\ /g'`;do mplayer $i;done
  • Envoyer une notification quand le réseau est rétabli :
until ping -w1 -c1 8.8.8.8; do sleep 5; done && notify-send "Net is back"
  • Créer une archive TGZ à travers le réseau :
tar czf - /path_to_archive | ssh user@host 'dd of=archive.tgz'
  • Surveiller les modifications de fichiers dans un répertoire :
watch -d -n 1 ls -l
  • Créer un répertoire et se déplacer à l’intérieur :
mkdir NEW_DIR && mv $_
  • Créer une copie de sauvegarde d’un fichier :
cp my_file{,.bak}
  • Générateur de hash :
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w ${1:-32} | head -n 1
  • Merger des fichiers GPX en un :
gpsbabel -i gpx `ls *.gpx | sed 's/^/-f /g' | xargs` -o gpx -F merge.gpx

Une réflexion au sujet de « Une sélection de commandes Bash »

  1. Chouette, j’adore les jeux de bash.

    Perso, je ne fait plus de for sur un find, mais j’utilise xargs. Pas testé, mais ta commande doit pouvoir devenir :

    find . -name *mp3|sort -R|head -10| xargs -i mplayer “{}”

Les commentaires sont fermés.