Exercice N1 : rechercher des fichiers avec find, whereis et locate.
1. Rechercher tous les fichiers se terminant par .c dans le rpertoire /usr find /usr -name " *.c " -print 2. Connatre les derniers fichiers modifis dans les 3 derniers jours dans toute l'arborescence (/) find / -mtime 3 -print 3. Chercher dans toute l'arborescence, les fichiers ordinaires appartenant g1u1 , dont la permission est fixe 755 find / -type f -user g1u1 -perm 755 print 4. Afficher lcran tous les fichiers qui se terminent par .c partir du rpertoire courant find . name *.c exec cat {} \; 5. Rechercher des fichiers ayant pour nom core et ayant une taille suprieure 1Mo, suivi de l'effacement de ces fichiers. Sachant que (2000*512 = 1Mo) find . \(-name core -a size +2000 \) -exec rm {}\; 6. Recherchez toutes les instances dun programme appel startappli au sein du path . Quelle commande utilisez-vous ? which -a startappli 7. Affichez tous les fichiers ayant une taille infrieure 400 octets et ayant les droits 644. Utilisez les paramtres -size et -perm de la commande find. $ find / -size -400c -perm 644 -print 8. Affichez tous les fichiers dans votre rpertoire personnel ayant une taille infrieure 400 blocs. $ find ~ -size - 4 0 0 -print 9. Listez tous les fichiers du systme vous appartenant modifis il a plus de 7 jours. Utilisez les paramtres -user et -mtime. $ find / -user seb -mtime +7 - l s 10. Recherchez tous les fichiers vides du systme nappartenant pas root et tentez de les supprimer. Utilisez les paramtres -empty et -exec pour excuter un rm sur chaque fichier trouv.
$ find / -type f -empty -exec rm -f {} \;
11. Indiquez o se situe la commande binaire ls. Utilisez la commande whereis pour cela : $ whereis -b ls 12. Vous avez perdu le fichier lettre_importante.odf. O est-il, sans utiliser find ? $ locate lettre_importante.odf
Exercice N2 : les filtres
1. rechercher toutes les lignes commenant par les caractres compris entre a et d dans le fichier test grep ^[a-d] carnet-adresse 2. obtenir les lignes contenant la chane de caractre Tunis dans le fichier test grep Tunis carnet-adresse 3. Affichage de la liste des sous rpertoires ls l | grep ^d 4. Affichage de la liste inverse ls l | grep v ^d 5. Le fichier /etc/passwd est un grand classique sous Unix. Il se compose de sept champs spars par des : : login:passwd:UID:GID:Commentaire:homedir:shell. Rcuprez la ligne de lutilisateur root dans /etc/passwd. grep ^ roo t : /etc/passwd 6. De cette ligne, rcuprez lUID de root. grep ^ root : /etc/passwd | cut - d : - f 3 7. Comptez le nombre dutilisateurs contenus dans ce fichier laide dune redirection en entre wc -l < /etc/passwd 8. Rcuprez la liste des GID, triez-les par ordre croissant et supprimez les doublons cut - d : - f 4 /etc/passwd | sort -n | uniq 9. De l , extrapolez le nombre de groupes diffrents utiliss. cut - d : - f 4 /etc/passwd | sort -n | uniq | wc -l 10. Convertissez tous les logins en majuscules cut - d : -f1 /etc/passwd | tr " [ a - z ] " " [ A - Z ] " 11. Isolez maintenant la huitime ligne de /etc/passwd. $ grep -n "" /etc/passwd | grep ^ 8 : | cut - d : - f 2 -