truc2geek

2015/03/15

Bash : commandes ls, touch, mv

Filed under: PC GNU/Linux, shell Bash — Étiquettes : , , , , — truc2geek @ 20:42

Les commandes « ls » et « mv » sont parmi celles qu’il faut vraiment connaître, et « touch » nous servira à créer des fichiers pour la démo.

créer un répertoire de test

Dans mon répertoire personnel, « /home/antoine », j’ai créé un répertoire destiné à toutes sortes de tests, nommé « Test » (j’ai hésité avec « Donald ». Ne me demandez pas pourquoi).

01.png

On crée des fichiers avec la commande « touch ».
Affichons la page « man », donc le manuel, de cette commande :
02.png

03.png

On a l’info intéressante : cette commande est d’abord prévue pour modifier le « timestamp », c’est-à-dire la date/heure de la dernière modification d’un fichier.
L’effet secondaire est que si on l’utilise sur un fichier qui n’existe pas, il sera créé, sauf si on utilise l’option -c ou -h.
On va exploiter cette possibilité pour créer des fichiers, qui seront vides.

On crée des fichiers, ici avec 3 commandes « touch » mais on aurait pu regrouper le tout en une seule ; ensuite, une commande « ls » pour voir le tout :
04.png

La commande « ls »

Elle permet de lister les fichiers présents dans un répertoire.
On parle des fichiers au sens « large », au sens Unix, donc tous les fichiers, parmi lesquels entre autres : les fichier ordinaires, les répertoires, les fichiers spéciaux.

« ls * » donne le même résultat que « ls ».
On filtre ensuite sur les fichiers dont le nom termine par « .txt », avec « ls *.txt » ; puis la même chose mais avec « .csv ».
Le métacaractère « * » représente 0, 1 ou plusieurs caractères quelconques.
05.png

Ici on liste les fichiers dont le nom commence par « Fic » ;
puis ceux qui commencent par « Fic » et se terminent par « .txt » ;
et enfin, ceux qui contiennent « Doc » :
06.png

Le point d’interrogation représente un et un seul caractère quelconque :
07.png

Aucun problème pour utiliser plusieurs métacaractères. Ci-dessous :
Tous les fichiers qui contiennent « Fic » puis un caractère puis un point puis n’importe quelle chaîne.
Tous les fichiers qui contiennent « Fic1 » puis un caractère puis « .txt ».
Tous les fichiers qui contiennent « Fic1 » puis un caractère puis « . » puis n’importe quelle chaîne.
08.png

commande mv (move) : déplacer un fichier

Mv permet de déplacer un fichier (ou plusieurs), mais pas seulement : on peut aussi définir un nouveau nom pour le fichier. Si on l’utilise sans indiquer de nouveau répertoire, mais en indiquant un nouveau nom du fichier, cela revient à simplement renommer le fichier.

On va créer un nouveau répertoire, nommé « Repertoire1 », dans lequel on va déplacer le fichier « MonDocument.txt :
09.png

Ensuite on supprime ce répertoire et son contenu :
15.png

commande mv : déplacer une sélection de fichiers

Créer des fichiers pour ce test

On va créer des fichiers nommés « Releve_AAAAMMJJ.txt », qui pourraient être créés chaque jour par une application, pour les mois de janvier et février 2015.
Ensuite on va créer un répertoire pour janvier 2015 et un pour février 2015, et placer les fichiers dans le répertoire correspondant, en une seule commande pour chaque mois.

Dans ce test, le plus long est de créer les fichiers : impensable de tout faire à la main, on va coder une boucle :
10.png

Explication de ce code :
On définit une variable « CPT », qui servira de compteur : on l’initialise à 1.
Ensuite on crée une boucle, qui devra s’exécuter tant que la valeur de la variable « CPT » sera inférieure ou égale à 31 (par rapport aux 31 jours du mois de janvier 2015). Cette boucle commence à la ligne « while … ; do » et se termine à la ligne « done ».

Le traitement exécuté en boucle est le suivant :

  • donner à la variable « NOM », la valeur de « CPT »
  • ensuite les 3 lignes de « if … ; then »  à « fi » permettent que, si la valeur de « CPT » est inférieure à 10, alors on ajoute un « 0 » au début de « NOM ». Le but est d’avoir toujours deux chiffres pour le jour.
  • ensuite, on concatène « NOM » au texte qui va former le nom complet du fichier
  • ensuite, on crée le fichier via la commande touch
  • puis on incrémente la variable « CPT »

Après l’exécution de ce code, la commande « ls » permet de vérifier le résultat.

On recommence, pour février 2015 donc avec 28 jours :
17.png

déplacer les fichiers

On crée les deux répertoires :
12.png

On déplace tous les fichiers dont le nom correspond au mois de janvier 2015, et on vérifie avec la commande ls qu’ils ne sont plus dans le répertoire courant :
13.png

Reste à bien vérifier qu’ils ont été placés dans le répertoire « 2015_01 », ce qui est le cas :
14.png

Même chose pour les fichiers de février 2015 :
16.png

Conclusion : le shell est super cool!

Publicités

Laisser un commentaire »

Aucun commentaire pour l’instant.

RSS feed for comments on this post. TrackBack URI

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

Créez un site Web ou un blog gratuitement sur WordPress.com.

%d blogueurs aiment cette page :