Exercices script Shell unix - backup - poubelle - commande - trash - find
Exercice 1: Backup
- En utilisant la commande find, créez une commande save_backup vous permettant de copier tous les fichiers de votre home directory dont le nom se termine par un ~ dans un répertoire ~/Backup. Vous ne devez pas toucher aux fichiers se trouvant déjà dans ~/Backup.
Il serait judicieux de commencer par afficher ces programmes.
Correction :
#!/bin/bash
FILES=`find ~ -name '*~' -type f | grep -v Backup`
mv -vi $FILES ~/Backup
FILES=`find ~ -name '*~' -type f | grep -v Backup`
mv -vi $FILES ~/Backup
{sidebar id=6}{sidebar id=1} |
Exercice 2: Poubelle - commande trash
L'objectif de cet exercice est de créer une commande trash qui déplacera les fichiers dans un répertoire poubelle au lieu de les effacer.
- Créez un répertoire ~/Poubelle.
- Créez un fichier trash ayant pour première ligne #!/bin/bash contenant la suite de commandes nécessaire pour déplacer tous les fichiers passés en argument sur la ligne de commande dans le répertoire ~/Poubelle. On utilisera une boucle for et $*. On tapera par exemple : trash *~ pour effacer tous les fichiers se terminant par le tilde.
- Ajouter une option -c à la commande telle que trash -c affiche la taille du contenu du répertoire poubelle. On utilisera la commande du -sk (cf. man).
- Ajouter une option -e permettant de vider le contenu de la poubelle.
- Ajouter une option -h affichant une aide analogue à celle de cp -h. On utilisera
- cat
- Créez le répertoire ~/bin/. Ajoutez le dans votre $PATH copiez-y votre programme et ajoutez les droits en exécution au programme. Pourquoi fait-on cela ?
Correction :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #!/bin/bash if [ -z $1 ] then cat EOF Usage : trash [-h|-e|-c] [fichier1 ... fichiern] EOF exit 0 fi if [ $1 = '-h' ] then cat EOF Usage : trash [-h|-e|-c] [fichier1 ... fichiern] EO exit 0 fi if [ $1 = '-c' ] then du -sk ~/Poubelle exit 0 fi if [ $1 = '-e' ] then rm -rf ~/Poubelle/* exit 0 fi for I in $* do mv $I ~/Poubelle done |