Trucs et logiciels

Les astuces ne doivent pas finir à la corbeille !

Suivre l’évolution du résultat d’une commande sous Unix

Une fois j’étais en stage, et mon tuteur devait copier le contenu d’un disque ailleurs. Pour une raison que je ne me rappelle plus, ça ne marchait pas sur son Mac (le disque était en ext je crois), du coup il m’a emprunté mon Ubuntu. Pour suivre l’avancement de la copie, il a lancé une commande permettant d’avoir le nombre de fichiers dans le dossier de destination actualisé toutes les quelques secondes. J’ai mis du temps à retrouver ce qui composait cette commande mais maintenant que je le sais, je le note ici pour que cela ne se perde plus.

Nombre de fichiers dans un dossier

Pour obtenir la liste des fichiers d’un dossier, on utilise la commande ls. Pour n’avoir qu’un fichier par ligne, on peut lui ajouter l’option -1 (qui affiche un fichier par ligne) ou -l (qui affiche la liste détaillée), ainsi que l’option -a si on veut prendre en compte les fichiers cachés.

La commande wc permet d’obtenir le nombre de caractères, mots et lignes d’un fichier. Pour n’obtenir que les lignes, on utilise l’option -l. On va donc l’appliquer sur le retour de la commande précédente grâce au pipe, ce qui nous donne

ls -1 | wc -l

On a ainsi le nombre de fichiers d’un dossier. Mais dans le cas où ce nombre de fichiers évolue et qu’on veut suivre son évolution, cela ne suffit pas. On va voir comment suivre le résultat de cette commande dans le temps.

Actualisation du résultat d’une commande

On va utiliser pour cela la commande watch, ce qui signifie « regarder » en français. Son utilisation est décrite ici : http://www.linfo.org/watch.html

Par exemple, pour suivre la liste des fichiers, on utiliserait :

watch ls -l

On pourrait alors vouloir utiliser la même chose pour notre commande précédente. Seulement , cela ne fonctionne pas, sûrement à cause du pipe. On doit utiliser une syntaxe différente :

watch 'ls -1|wc -l'

Et voilà !

On peut utiliser également l’option -d pour surligner les différences entre deux mises à jour.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :