Pages : 1
#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é
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
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
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 je vais pouvoir avancer un peu !
Encore merci
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