Appliquer la notion

On souhaite améliorer le script suivant.

1
#!/bin/bash
2
3
cp camera/*.png photos/
4
chmod 600 photos/*
5
ls -l photos

Ce script copie tout les fichiers .png se trouvant dans le dossier camera vers un dossier photos, change les droits en lecture/écriture uniquement au propriétaire, puis liste les fichiers pour afficher les permissions.

L'objectif est de le modifier pour qu'il n'affiche plus la liste des permissions des nouveaux fichiers, mais qu'il réalise 2 choses :

  • il prend le nom du dossier de destination en paramètre du script

  • il écrit, à la fin, un message indiquant "Il y a X photos dans le dossier" (où X est le nombre de fichiers .png dans le dossier de destination)

Pour initialiser un environnement et tester le script, vous pouvez lancer les commandes suivantes :

1
mkdir camera photos
2
touch camera/pic1.png
3
touch camera/pic2.png
4
touch camera/pic3.png
5
touch camera/pic4.png
6
touch camera/vid1.mp4
7
touch camera/vid2.mp4
8
touch camera/vid3.mp4
9
touch camera/vid4.mp4

Question

Modifiez le script en conséquence.

Solution

On modifie le script pour avoir le contenu suivant.

1
#!/bin/bash
2
3
cp camera/*.png $1/
4
chmod 600 $1/*
5
count=$(ls $1 | wc -l)
6
echo "Il y a $count photos dans le dossier"

Enfin on l’exécute en n'oubliant pas de donner le nom du dossier en paramètre.

1
$ ./script.sh photos
2
Il y a 4 photos dans le dossier