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
Nicolas S.
G-raison a écrit:

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?!


Le fait qu'un fichier soit exécutable est un droit, pas un type de
fichier. Regarde plutôt du côté de find.


--
Nicolas S.

Avatar
Thierry B.
--{ G-raison a plopé ceci: }--

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?!


Il faut utiliser la commande "find".


--
"C makes it easy to shoot yourself in the foot. C++ makes it harder,
but when you do, it blows away your whole leg".
--{ Bjarne Stroustrup }--

Avatar
Fabien LE LEZ
On Tue, 23 Oct 2007 22:46:51 +0200, G-raison :

Je voudrais par exemple lister tous les exécutables qui se trouvent dans un
répertoire.


Si tu veux faire la liste de tous les fichiers d'un répertoire que tu
peux exécuter, tu peux par exemple taper :

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

find est plus compliqué, mais probablement plus fiable, et plus adapté
aux scripts.

Avatar
didier gaumet
Bonjour,

On Tue, 23 Oct 2007 23:06:38 +0200, Nicolas S. wrote:

Le fait qu'un fichier soit exécutable est un droit, pas un type de
fichier. Regarde plutôt du côté de find.


En même temps, si quelqu'un a donné à un fichier texte le
droit d'exécution, tu ne vas pas être plus avancé ;-)

La commande file revoie le type des fichiers passés en argument (type qui
effectivement ne dépend pas de l'extension).

$ find /repertoire_a_analyser/* | grep executable

Avatar
didier gaumet
On Wed, 24 Oct 2007 06:31:45 +0000, didier gaumet wrote:

La commande file revoie [...]
...renvoie...


Avatar
Fabien LE LEZ
On 24 Oct 2007 06:31:45 GMT, didier gaumet
:

En même temps, si quelqu'un a donné à un fichier texte le
droit d'exécution, tu ne vas pas être plus avancé ;-)


Ça dépend ce que tu entends par "fichier texte".

Si le fichier texte en question contient quelque chose comme

#!/bin/bash
echo Hello World!

il est parfaitement normal de lui donner un droit d'exécution.

Avatar
Nicolas S.
didier gaumet a écrit:

En même temps, si quelqu'un a donné à un fichier texte le
droit d'exécution, tu ne vas pas être plus avancé ;-)


Heu, si. C'est sur ce seul principe qu'est basé une bonne partie de ton
système. Ça s'appelle un script.

La commande file revoie le type des fichiers passés en argument (type
qui effectivement ne dépend pas de l'extension).

$ find /repertoire_a_analyser/* | grep executable
^^^^

J'imagine que tu voulais mettre file.

C'est acceptable occasionnellement, _mais_ tu dois bien être conscient
que ça va aussi te renvoyer les fichiers dont le _nom_ contient
'executable'.

--
Nicolas S.

Avatar
didier gaumet
On Wed, 24 Oct 2007 08:57:38 +0200, Nicolas S. wrote:


Heu, si. C'est sur ce seul principe qu'est basé une bonne partie de ton
système. Ça s'appelle un script.
[...]


Certes, mais pour être plus précis, si tu rends exécutable un fichier
texte qui contient ta recette de la charlotte aux fraises, tu vas être
chocolat ;-)
étymologiquement, c'est aussi un script, mais ton ordi risque d'avoir du
mal ;-)

$ find /repertoire_a_analyser/* | grep executable
^^^^

J'imagine que tu voulais mettre file.


Oui :-)

C'est acceptable occasionnellement, _mais_ tu dois bien être conscient
que ça va aussi te renvoyer les fichiers dont le _nom_ contient
'executable'.


oui :-)


Avatar
Nicolas George
G-raison wrote in message <471e5d8d$0$27366$:
Je voudrais par exemple lister tous les exécutables qui se trouvent dans un
répertoire.


ls bin

Si ça ne marche pas, c'est que tu dois faire du ménage.

Avatar
didier gaumet
On Wed, 24 Oct 2007 13:13:11 +0200, Cumbalero wrote:


Certes, mais pour être plus précis, si tu rends exécutable un fichier
texte qui contient ta recette de la charlotte aux fraises,


Si tu as un interpréteur capable d'exécuter la séquence d'instructions
que constitue la recette, je ne vois pas où est le problème.


Ben, le problème, c'est que je suis toujours à la recherche du shell
qui me permettra d'éviter de cuisiner moi-même une charlotte aux fraises ;-)
Donc le script shell charlotte_aux_fraises.sh ne risque pas d'être
exécutable même si on lui confère des droits d'exécution.

L'OP demande comment trouver une liste d'exécutables, pas nécessairement
de binaires exécutables, la liste que renvoie la commande que tu
proposes est donc incomplète.
[...]


la commande
$ file * | grep executable
ne renvoie pas que les binaires mais aussi entre autres les shells:

:~$ file /etc/init.d/* | grep executable | head
/etc/init.d/915resolution: Bourne shell script text executable
/etc/init.d/acpid: Bourne shell script text executable
/etc/init.d/acpi-support: Bourne-Again shell script text executable
/etc/init.d/alsa: Bourne shell script text executable
/etc/init.d/alsa-utils: Bourne shell script text executable
/etc/init.d/amavis: Bourne shell script text executable
/etc/init.d/anacron: Bourne shell script text executable
/etc/init.d/apache2: Bourne shell script text executable
/etc/init.d/apmd: Bourne shell script text executable
/etc/init.d/atd: Bourne shell script text executable


1 2 3 4 5