Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 07/11/2008, à 11:54

Yann71

[bash] recherche sur les liens

Bonjour,

Je suis en train de rédiger un petit script bash et j'aimerais rechercher tout les fichiers qui ont un nombre de lien égal à 2. J'ai fait plusieurs essais avec grep, mais sans succes..

La commande doit ressembler à quelque chose comme ca : ls -l /usr/bin/ | grep  mais je n'arrive pas à donner les bon paramètres à grep

Merci pour votre aide

Hors ligne

#2 Le 07/11/2008, à 11:59

Ultim4T0m

Re : [bash] recherche sur les liens

Bonjour,

Ma question peut paraître bête, mais, qu'entends-tu par "nombre de liens" ?


Dell Inspiron 6400 ~ Ubuntu Intrepid Ibex

Hors ligne

#3 Le 07/11/2008, à 13:46

Yann71

Re : [bash] recherche sur les liens

je ne l'avais pas préciser désolé cool

quand tu fait ls -l tu à cela :

total 40
drwx------  2 yann yann 4096 2008-11-05 16:34 amsn_received
drwxr-xr-x  2 yann yann 4096 2008-11-05 16:50 Bureau
drwxr-xr-x  7 yann yann 4096 2008-11-04 15:35 Devel
drwxr-xr-x  2 yann yann 4096 2008-11-06 18:20 Documents
drwxr-xr-x  3 yann yann 4096 2008-11-07 13:41 Downloads
drwxr-xr-x 23 yann yann 4096 2008-11-07 13:13 Emulation
drwxr-xr-x  8 yann yann 4096 2008-11-06 19:12 Images
drwx------  3 yann yann 4096 2008-11-07 08:31 Jeux
drwxr-xr-x  3 yann yann 4096 2008-11-05 17:40 Programmes
drwxr-xr-x  3 yann yann 4096 2008-11-05 18:51 workspace

La deuxième colonne indique le nombre de liens, ce que je veux c'est finir la commande que j'ai mis plus haut pour n'afficher que les fichiers qui ont 2 liens et pas plus, ni moins tongue

Hors ligne

#4 Le 07/11/2008, à 14:37

AnsuzPeorth

Re : [bash] recherche sur les liens

Bjr,

Je ne suis pas un expert (il y a de vrai betes sur ce forum...), mais si tu n'es pas obligé d'utiliser grep, je ferais une boucle 'for' sur le 'ls -l' et j'utiliserais cut pour extraire la deuxieme colonne et comparer avec if si c'est egale a 2 !

#5 Le 07/11/2008, à 14:41

AnsuzPeorth

Re : [bash] recherche sur les liens

Mais il y auras certainement qql'un qui va te donner la solution sur une ligne...Avec sed ou awk, je vois bien le truc....Ma façon de faire, c du niveau CM2...

#6 Le 07/11/2008, à 14:59

iuchiban

Re : [bash] recherche sur les liens

ls -l | grep " 2 "

sauf si tu as des fichiers qui comportent <espace>2<espace>, sinon, ca devrait suffire.


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne

#7 Le 07/11/2008, à 15:05

Alain.g

Re : [bash] recherche sur les liens

Bonjour

Pour obtenir avec awk les lignes dont la seconde colonne est égale à 2 :

ls -l | awk '$2==2'

Par contre le seconde colonne a une signification particulière dans le cas des dossiers :

La seconde colonne contient un nombre dont la signification dépend du type de fichier affiché. Pour un fichier ordinaire, il représente le nombre de liens physique (hard link) vers le fichier. Pour les dossiers, ce nombre donne le nombre de sous-dossier (+2 car il y a les dossiers "." et "..").
http://www.linuxcertif.com/doc/keyword/ls/

Donc pour obtenir les lignes commençant par - (fichier ordinaire) et dont la seconde colonne est 2 :

ls -l | awk '/^-/ && $2==2'

Dernière modification par Alain.g (Le 07/11/2008, à 15:06)


Xubuntu Karmic !

Hors ligne

#8 Le 07/11/2008, à 15:05

Totor

Re : [bash] recherche sur les liens

ls -l|awk ' $2==2'

EDIT : post au même moment qu'Alain wink

Dernière modification par Totor (Le 07/11/2008, à 15:06)


-- Lucid Lynx --

Hors ligne

#9 Le 07/11/2008, à 15:08

AnsuzPeorth

Re : [bash] recherche sur les liens

J'ai encore cherché midi a 14 heures moi....

ls -l | grep " 2 "

C beaucoup plus simple....c vrai.


Et en y ajoutant un cut, on supprime le risque (je ne sais pas si ca marche, je peux pas tester, j'suis sous window$ )

ls -l | cut -d " " -f2 | grep 2

#10 Le 07/11/2008, à 15:29

Yann71

Re : [bash] recherche sur les liens

Merci beaucoup pour votre aide smile je vais pouvoir avancer un peu !

Encore merci cool

Hors ligne

#11 Le 07/11/2008, à 16:25

iuchiban

Re : [bash] recherche sur les liens

Un petit [Résolu] dans le titre alors?


C'est depuis que Chuck Norris a laissé la vie sauve à un manchot que l'on dit que Linux est libre.

Chuck Norris n'a pas besoin d'éditer son premier message pour ajouter [Résolu]. Chuck Norris est toujours [Résolu], quoi qu'il arrive.

Hors ligne