Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

La commande ls.

64 réponses
Avatar
G-raison
Bonjour,

Ca fait un bon bout de temps que je regarde la page man de la commande "ls".
J'ai regardé aussi les otpions sur différents sites web.
On en fait un tas de truc avec cette commande!

Mais je n'ai pas trouvé ce que je voulais.

Je voudrais par exemple lister tous les exécutables qui se trouvent dans un
répertoire.
Comment faut-il écrire avec cette commande?

J'arrive à voir par exemple les répertoires avec ls -d */, ou même les
images jpg avec ls -d *.jpg, mais pas les exécutables?!

--
@+
gr

10 réponses

1 2 3 4 5
Avatar
didier gaumet
On Wed, 24 Oct 2007 18:51:33 +0200, G-raison wrote:

$ find /repertoire_a_analyser/* | grep executable


Ah, ça ne liste rien chez moi. ;-)


C'est normal, j'ai écrit avec mes pieds ;-)
Je voulais parler de la commande file mais comme on parlait de la
commande find, je me suis trompé en écrivant.

$ file /repertoire_a_analyser/* | grep executable


Avatar
Fabien LE LEZ
On Wed, 24 Oct 2007 18:55:05 +0200, G-raison :

ls -l|grep -E "^-..x"


Ah ça, ça marche.
Mais faut avouer quand même que la syntaxe est complexe.


En tant que recette de cuisine, oui.
Mais bon, la clé est de connaître les regex[*], et d'observer la
sortie de ls -l.

Le début d'une ligne renvoyée par "ls -l" est quelque chose comme
"drwx", avec chaque lettre remplacée par un tiret si l'attribut est
inactif. Le d indique qu'il s'agit d'un répertoire ; tu n'en veux pas,
donc tu veux un tirer à cette position. Les deux lettres suivantes, on
s'en fout ici ; la quatrième lettre indique le droit en exécution, ce
qui t'intéresse -- tu veux un x à cet emplacement.
Tu passes donc la sortie de "ls -l" à grep avec les arguments :
-E -> ce qui suit est une regex
^ -> chercher uniquement au début de la ligne
- -> la première "lettre" doit être un tiret (ignorer les
répertoires)
. -> n'importe quelle lettre (deux fois)
x -> la quatrième lettre doit être un x

On rajoute des guillemets pour faire joli (et pour éviter quelques
surprises), et le tour est joué !





[*] Regex : "regular expressions" en anglais, "expressions régulières"
ou "expressions rationnelles" en français. C'est le genre de truc
totalement indispensable quand, d'une manière générale, on veut
rechercher ou remplacer du texte. Cf Google.


Avatar
Nicolas George
Fabien LE LEZ wrote in message
:
[*] Regex : "regular expressions" en anglais, "expressions régulières"
ou "expressions rationnelles" en français.


Normalement, seulement rationnelles.

Avatar
Fabien LE LEZ
On 24 Oct 2007 16:56:35 GMT, Nicolas George
<nicolas$:

Et on aurait raté les .com et les .bat.


Attention avec les .com :

J'ai un répertoire qui contient les versions de travail de plusieurs
sites web. Du coup, les sous-répertoires se nomment www.machin.com,
www.truc.com, etc.

M'enfin, dans l'ensemble, ce système d'extensions est vachement
pratique pour repérer le type d'un fichier au premier coup d'oeil.
D'ailleurs, même sur un serveur Linux, on trouve fréquemment des .jpg
et .html...

(D'ailleurs, un des plus gros bugs de Windows, causeur de problèmes et
de trous de sécurité à n'en plus finir, est l'idée saugrenue de cacher
par défaut les extensions.)

Avatar
Fabien LE LEZ
On Wed, 24 Oct 2007 17:00:12 +0200, Erwan David :

Le shell, c'est pour cuisiner les coquilles St Jacques.


... au goût d'essence.

Avatar
Fabien LE LEZ
On 24 Oct 2007 17:11:00 GMT, Nicolas George :

[*] Regex : "regular expressions" en anglais, "expressions régulières"
ou "expressions rationnelles" en français.


Normalement, seulement rationnelles.


Yep. Mais comme en pratique, on lit le plus souvent "expressions
régulières", même si c'est faux, il vaut mieux le savoir.

Ce genre de problèmes est d'ailleurs une bonne raison pour lire
systématiquement la doc technique en anglais.


Avatar
Nicolas S.
Fabien LE LEZ a écrit:

(D'ailleurs, un des plus gros bugs de Windows, causeur de problèmes et
de trous de sécurité à n'en plus finir, est l'idée saugrenue de c acher
par défaut les extensions.)


La connerie est plus profonde que ça, c'est déterminer les traitements à
effectuer en fonction de l'extension qui est une connerie.

--
Nicolas S.

Avatar
Nina Popravka
On Wed, 24 Oct 2007 19:14:58 +0200, Fabien LE LEZ
wrote:

(D'ailleurs, un des plus gros bugs de Windows, causeur de problèmes et
de trous de sécurité à n'en plus finir, est l'idée saugrenue de cacher
par défaut les extensions.)


C'est clair que le mec qui a eu l'idée de faire ça, sans doute pour
faire genre Mac, il aurait mieux fait de rester couché :-/
--
Nina

Avatar
Fabien LE LEZ
On Wed, 24 Oct 2007 19:03:47 +0200, "Nicolas S." :

D'où le sens de sa remarque: si tes exécutables ne sont pas dans bin,
tu as un sacré tri à faire.


Parles-tu ici de ~/bin, bin, ou /bin ?
Le second varie suivant l'endroit où on se trouve, et comme le
troisième est inaccessible en écriture (sauf à root), on ne va pas
aller bien loin.

Avatar
Nicolas S.
Fabien LE LEZ a écrit:

On Wed, 24 Oct 2007 18:55:05 +0200, G-raison :

ls -l|grep -E "^-..x"


Ah ça, ça marche.
Mais faut avouer quand même que la syntaxe est complexe.


En tant que recette de cuisine, oui.
Mais bon, la clé est de connaître les regex[*], et d'observer la
sortie de ls -l.


Et si on pense s'en servir souvent ou qu'on risque de l'oublier, rien
n'empêche de le mettre dans un script shell.
Je laisse le soin à l'OP de trouver où placer un tel script.

--
Nicolas S.



1 2 3 4 5