Circum Blog

Circum Net – IT – Conseils pratiques

Passage en minuscules des noms de fichiers

Systèmes, Unix

Il se peut que dans certaines situations (par souci de cohérence, de compatibilité…) l’on doive s’assurer de la basse casse des noms de fichiers d’un répertoire. Dans ce cas, les possibilités de scripting offertes par le shell peuvent s’avérer très utiles afin d’obtenir rapidement un conversion.

Voici, à titre d’exemple, un script de base qui permet de convertir en minuscules le nom des fichiers se trouvant dans un répertoire.

for x in *
do
mv $x `echo $x |tr ‘[:upper:]’ ‘[:lower:]’`
done

Pour exécuter ce script, il suffit, à partir d’une fenêtre terminal, de se placer dans le répertoire à traiter (cd) et de taper les lignes de codes présentées ci-dessus. Après avoir fourni l’instruction ‘done’, la conversion sera opérée.

Description des composants du script

– Une boucle ‘for’ prenant en compte tous les fichiers (*) du répertoire courant. A chaque passage dans la boucle le nom d’un fichier est stocké dans la variable ‘x’.

– Une instruction ‘mv’ qui renomme les fichiers. Cette commande prend 2 arguments: le premier étant le nom initial du fichier en cours de traitement (représenté par l’appel à la variable ‘x’) et le second étant le nouveau nom en minuscules (`echo…`).

– Une instruction qui donne le nom en minuscules du fichier. Celle-ci est encadrée par des backquotes (`) qui donne lieu à son évaluation. Elle utilise la commande ‘echo’ qui envoie le nom du fichier (c’est-à-dire la variable ‘x’) via l’opérateur de redirection d’input ‘|’ à la commande ‘tr’ qui effectue elle la traduction en minuscules.



Afficher le contenu de fichiers

Systèmes, Unix

Que l’on soit débutant, simple uitilisateur, administrateur ou développeur sous Unix/Linux, il arrivera immanquablement que l’on ait besoin d’obtenir (à partir du Shell) un aperçu du contenu d’un fichier. Heureusement, différentes instructions de base permettent de rapidement visualiser le contenu d’un fichier.

Lancés dans une fenêtre ‘terminal’, les outils ‘cat’, ‘more’, ‘tail’ et ‘head’ donneront en effet une idée du contenu d’un ou plusieurs fichiers:

– ‘cat’ affiche le contenu d’un fichier;
– ‘more’ affiche le contenu d’un fichier page par page;
– ‘head’ affiche les 10 premières lignes d’un fichier;
– ‘tail’ affiche les 10 dernières lignes d’un fichier.

Voici quelques exemples d’utilisation:

cat security.txt

Le contenu du fichier ‘security’ est affiché à l’écran.

cat security.txt virus.txt

Le contenu des fichiers ‘security’ et ‘virus.txt’ est concaténé et affiché à l’écran.

more security.txt

Le contenu du fichier ‘security’ est affiché page par page à l’écran. Pour passer d’une page à l’autre, il suffit de taper sur la barre d’espacement.

header security.txt

Par défaut, les 10 premières lignes du fichier ‘security’ sont affichées à l’écran.

header -n 20 security.txt

L’option ‘n’ permet de préciser un nombre particulier de lignes à afficher à l’écran.

tail security.txt

Par défaut, les 10 dernières lignes du fichier ‘security’ sont affichées à l’écran.

tail -n 20 security.txt

L’option ‘n’ permet de préciser un nombre particulier de lignes à afficher à l’écran.

tail -f security.txt

L’option ‘f’ fait en sorte que l’affichage des dernières lignes soit rafraîchi à chaque mise à jour du fichier. Cel revient à voir en temps réel toutes les modifications qui sont effectuées sur le fichier.



History et ses raccourcis

Systèmes, Unix

Dans le shell (c’est-à-dire quand vous êtes en mode ligne de commande), l’instruction history permet d’afficher une liste des commandes shell précédemment exécutées.

La syntaxe de la commande ‘history’ est la suivante :

> history [-nb lines]

Le nombre de commandes affichées par défaut par history va dépendre du shell que vous utilisez (bash, tcsh, sh …). Ce nombre peut de toute façon être modifié en fournissant le paramètre du nombre de lignes en argument.

history 5
affichera les cinq dernières commandes comme présentées ci-dessous : 

507 ls
508 ls -la
509 top
510 df -k
511 history 5

history 20
affichera les vingt dernières commandes

history 30
affichera les trente dernières commandes

Si le nombre de commandes à lister est élevé, il sera préférable d’utiliser un pipe vers less pour en faciliter l’affichage et la lecture ( ex: history 200 | less).

 
Les commandes fournies en résultat sont préfixées d’un numéro qui correspond à la position de ces commandes dans l’history. Pour rappeler une commande particulière, il suffit de taper un point d’exclamation (‘!’) suivi du numéro approprié. Par contre, afin de relancer la toute dernière commande exécutée au prompt UNIX, il faut juste taper deux points d’exclamation (‘!!’). Exemples:

Par rapport à la liste suivante fournie par history
12 ls -la    

pour obtenir la commande indicée 12, on tapera :
> !12

pour obtenir la commande indicée 20, on tapera :
> !20

et pour lancer la dernière commande exécutée, on tapera :
> !!