Pb avec ls

Pb avec ls - Shell/Batch - Programmation

Marsh Posté le 07-07-2005 à 09:47:49    

Salut j'ai un pb avec la commande ls :
 
J'ai un répertoire avec 600 fichiers qui commençent par 0 ou 1. Je veux pour chacun choper la date complète xxxx-xx-xx.
Le seul truc que j'ai trouvé c'est ls --full-time [01]*.
Et le pb auquel je suis confronté est que ya trop de fichiers lool!
J'ai un message

/usr/bin/ls : Argument list too long


Et si je fais un ls [0]* ou un ls[1]* ça marche nikel.
 
Donc question : ya t il un moyen de changer la taille du buffer de ls? (car j'imagine que ça doit fonctionner comme ça  :??:?)
Ou sinon ya t il une option de ls autre que --full-time qui permette de choper la date complète tout en bouffant moins de buffer?
Merci   :D

Reply

Marsh Posté le 07-07-2005 à 09:47:49   

Reply

Marsh Posté le 07-07-2005 à 09:55:21    

damcmoi a écrit :

Et le pb auquel je suis confronté est que ya trop de fichiers lool!


 
"lol" ?
Eh les gars, j'ai un cancer looooool !!111!!1one
 
 
Sinon ce n'est pas une limitation d'un buffer, mais simplement tu es en train de donner à ls une liste de 600 fichiers en argument. Forcément, il apprécie pas.
Essaie d'utiliser find en concordance avec ls plutôt, genre :
 

find . -name "[01]*" -exec ls --full-time {} \;


Message édité par Elmoricq le 07-07-2005 à 09:59:32
Reply

Marsh Posté le 07-07-2005 à 10:03:08    

Merci bcp!
Tu peux m'expliquer (rapidement je veux pas t'ennuyer) la différence? Car ça donne le mm résultat que ls --full-time, au "./" près avant le nom du fichier... Et c'est quoi un joker?
Merci encore.

Reply

Marsh Posté le 07-07-2005 à 10:10:46    

Elmoricq a écrit :

Sinon ce n'est pas une limitation d'un buffer, mais simplement tu es en train de donner à ls une liste de 600 fichiers en argument. Forcément, il apprécie pas.


 

Code :
  1. i=1000;
  2. while [ i -gt 0 ]; do
  3.   touch sdhfsdhfskdhflskdflksdfjklsdhfjkshd"$i"
  4.   i=$(( $i - 1 ))
  5. done
  6. ls * > /dev/null


 
Chez moi ca marche http://forum-images.hardware.fr/icones/message/icon10.gif
 
ls -v ?


Message édité par SBAM le 07-07-2005 à 10:12:51

---------------
Si t'es fier d'etre un Fortin tape dans tes mains !
Reply

Marsh Posté le 07-07-2005 à 10:12:19    

damcmoi a écrit :

Merci bcp!
Tu peux m'expliquer (rapidement je veux pas t'ennuyer) la différence? Car ça donne le mm résultat que ls --full-time, au "./" près avant le nom du fichier...


 
La différence c'est que find va chercher tous les noms de fichiers correspondant au pattern fourni à l'argument -name, et il va donner chaque occurence à ls. Une par une.
Au lieu des 600 d'un coup. ;)
 
 

Citation :

Et c'est quoi un joker?


 
Un joker ("wildcard" en anglais), c'est l'un des deux caractères '?' ou '*'.
Ils désignent respectivement "un caractère indéfini" et "une suite de caractères indéfinis, de longueur indéfinie".
 
C'est le shell qui interprète ces caractères.

Reply

Marsh Posté le 07-07-2005 à 10:16:37    

Ben chez moi le "ls" passe tandis que le "ls *" passe pas
 
Merci Elmoricq, ce n'est pas la première fois que tu viens à mon aide, t'es trop rapide, trop performant  :D


Message édité par damcmoi le 07-07-2005 à 10:18:28
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed