Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix > AIX

AIX Forum d'entraide sur le système AIX. Avant de poster -> FAQ AIX et cours AIX

Réponse
 
Outils de la discussion
Vieux 24/08/2007, 10h12   #1 (permalink)
Membre habitué
 
Avatar de Bahan
 
Date d'inscription: avril 2006
Localisation: 78 - Guyancourt
Âge: 28
Messages: 148
Envoyer un message via MSN à Bahan
Par défaut [AIX] Palliatif à ls sur répertoire bien rempli

Bonjour à toutes et à tous.

J'ai un petit problème sous la forme d'un répertoire trop rempli qui a pour conséquence que la commande ls ne passe plus.

Existe-t-il une autre façon dans ce genre de cas de lister le contenu d'un répertoire contenant autant de fichiers ?

Merci d'avance.

Cdt.

Bahan
Bahan est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/08/2007, 15h18   #2 (permalink)
Membre éprouvé
 
Avatar de jlliagre
 
Date d'inscription: juin 2007
Localisation: Paris
Messages: 403
Par défaut

Peut-être:
Code :
echo *
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/08/2007, 15h57   #3 (permalink)
Membre actif
 
Avatar de f-k-z
 
Date d'inscription: juin 2006
Localisation: anywhere on Internet
Âge: 23
Messages: 195
Par défaut

Yop,
avec la commande:
Code :
cat tonrep
@++

F-k-z
__________________
GNU/Linux c'est une question de VI ou de MORE.
http://www.goodbye-microsoft.com
f-k-z est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/08/2007, 20h33   #4 (permalink)
Membre éprouvé
 
Avatar de BlaireauOne
 
Date d'inscription: mars 2007
Localisation: Toulouse
Messages: 471
Par défaut

Dans ce cas, tu dois passer par la commande find

Equivalent ls :
find . -print
ou
find .
Equivalent ls -l :
find . -ls
__________________
Loi de Murphy:
La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi.
La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi.
Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi.
BlaireauOne est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2007, 05h50   #5 (permalink)
Membre Expert
 
Avatar de frp31
 
Date d'inscription: juillet 2006
Localisation: toulouse
Messages: 1 474
Par défaut

Citation:
Envoyé par Bahan Voir le message
Bonjour à toutes et à tous.

J'ai un petit problème sous la forme d'un répertoire trop rempli qui a pour conséquence que la commande ls ne passe plus.

Existe-t-il une autre façon dans ce genre de cas de lister le contenu d'un répertoire contenant autant de fichiers ?

Merci d'avance.

Cdt.

Bahan
find . -ls est la methode la plus propre
mais ça ne devrai jamais arrivé....un grand menage d'été s'impose donc.
__________________
Bye @+
(\__/)
(o..o)
(") (")

Soutenez le logiciel libre
frp31 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 27/08/2007, 08h33   #6 (permalink)
Membre éprouvé
 
Avatar de jlliagre
 
Date d'inscription: juin 2007
Localisation: Paris
Messages: 403
Par défaut

As-tu un message d'erreur avec ls ?
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2007, 06h57   #7 (permalink)
Membre Expert
 
Avatar de frp31
 
Date d'inscription: juillet 2006
Localisation: toulouse
Messages: 1 474
Par défaut

Citation:
Envoyé par jlliagre Voir le message
As-tu un message d'erreur avec ls ?
je suppose qu'il a le message "arg list too long"
__________________
Bye @+
(\__/)
(o..o)
(") (")

Soutenez le logiciel libre
frp31 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2007, 08h24   #8 (permalink)
Membre éprouvé
 
Avatar de jlliagre
 
Date d'inscription: juin 2007
Localisation: Paris
Messages: 403
Par défaut

Sans lui passer d'arguments ?
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 28/08/2007, 18h38   #9 (permalink)
Membre Expert
 
Avatar de frp31
 
Date d'inscription: juillet 2006
Localisation: toulouse
Messages: 1 474
Par défaut

Citation:
Envoyé par jlliagre Voir le message
Sans lui passer d'arguments ?

apres avoir tester un volume volontairement saturé de fichiers bidons
une boucle de
Code :
dd if=/dev/full of=/tmp/lv02/test/$(date +"%Y%m%d%H%M") count=1
que ce soit ls ou ls -lrth c'est "arg list too long" qui remontra
donc à se souvenir :

ne pas confondre arguments de ligne de commande et arguments remontés/analysés par une commande.
__________________
Bye @+
(\__/)
(o..o)
(") (")

Soutenez le logiciel libre
frp31 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/08/2007, 02h02   #10 (permalink)
Membre éprouvé
 
Avatar de jlliagre
 
Date d'inscription: juin 2007
Localisation: Paris
Messages: 403
Par défaut

Citation:
Envoyé par frp31 Voir le message
apres avoir tester un volume volontairement saturé de fichiers bidons
une boucle de
Code :
dd if=/dev/full of=/tmp/lv02/test/$(date +"%Y%m%d%H%M") count=1
Hmmm, tu es sûr ?
J'ai du mal à y croire. Je viens de créer pour voir 192000 fichiers dans un répertoire et "ls" s'en sort bien. "ls *" prends pas mal de temps puis me sort le "arg list too long" attendu.
Code :
m3:/t/bigdir $ ls | wc -l    
  192000
m3:/t/bigdir $ ls * >/dev/null
ksh93: ls: /usr/bin/ls: cannot execute[Liste d'arguments trop longue]
Citation:
que ce soit ls ou ls -lrth c'est "arg list too long" qui remontra
Pas chez moi, mais je n'utilise pas AIX. C'est un bug spécifique à AIX ?
Citation:
donc à se souvenir :

ne pas confondre arguments de ligne de commande et arguments remontés/analysés par une commande.
Analysés, je veux bien mais les valeurs retournées par une commande ne sont pas des arguments, sauf imbrication de commandes.
Le message d'erreur est donc pour moi lui-même erroné s'il apparait avec la commande simple "ls".
"arg list" a toujours représenté sous Unix les arguments passés à une commande et "arg list too long" est le message remonté par le shell quand l'expansion des arguments sature la pile dans laquelle est stockée l'environnement (argv, envp) ce qui provoque une erreur "E2BIG". L'exécution de la commande ls sans arguments n'a donc pour moi aucune raison de remonter ce message.
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/08/2007, 06h42   #11 (permalink)
Membre Expert
 
Avatar de frp31
 
Date d'inscription: juillet 2006
Localisation: toulouse
Messages: 1 474
Par défaut

Code :
J'ai du mal à y croire. Je viens de créer pour voir 192000 fichiers dans un répertoire et "ls" s'en sort bien. "ls *" prends pas mal de temps puis me sort le "arg list too long" attendu.
du mal a y croire ? pourtant comme tu viens de le prouver toi meme avec ton essai tu es dans le meme cas !


non c'est pas un bug c'est la limitation normale
et ceci n'est pas spécifique à AIX c'est aussi le cas pour n'importe quel unix mais à des niveaux differents

tru64 par exemple y est très sensible...
__________________
Bye @+
(\__/)
(o..o)
(") (")

Soutenez le logiciel libre
frp31 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/08/2007, 08h47   #12 (permalink)
Membre éprouvé
 
Avatar de jlliagre
 
Date d'inscription: juin 2007
Localisation: Paris
Messages: 403
Par défaut

Citation:
Envoyé par frp31 Voir le message
Code :
J'ai du mal à y croire. Je viens de créer pour voir 192000 fichiers dans un répertoire et "ls" s'en sort bien. "ls *" prends pas mal de temps puis me sort le "arg list too long" attendu.
du mal a y croire ? pourtant comme tu viens de le prouver toi meme avec ton essai tu es dans le meme cas !
Tu as mal lu ma réponse. Tu as écrit que "ls" sans arguments peut générer un "arg list too long".

Quand je ne passe pas d'arguments à ls, je n'ai pas ce message. Quand je passe l'argument "*" que le shell tente d'étendre oui.

Je pense qu'on est d'accord la dessus.
jlliagre est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 30/08/2007, 16h06   #13 (permalink)
Membre Expert
 
Avatar de frp31
 
Date d'inscription: juillet 2006
Localisation: toulouse
Messages: 1 474
Par défaut

ah oui bien sur

pas reveillé moi ....
__________________
Bye @+
(\__/)
(o..o)
(") (")

Soutenez le logiciel libre
frp31 est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Autres systèmes > Unix > AIX



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide