OVH Cloud OVH Cloud

list exe

5 réponses
Avatar
DomiPi
Bonjour,
Petite question simple mais je cale ...
Dans un shell, comment lister uniquement les fichiers exécutables ?
ls ??? find ???
Réelement ce que je veux faire c copier les exécutables d'un répertoire vers
un autre
Merci à tous
Dominique

5 réponses

Avatar
Pascal Bourguignon
"DomiPi" writes:

Bonjour,
Petite question simple mais je cale ...
Dans un shell, comment lister uniquement les fichiers exécutables ?
ls ??? find ???
Réelement ce que je veux faire c copier les exécutables d'un répertoire vers
un autre
Merci à tous
Dominique


Il faut savoir comment tu défini un "exécutable"? Il peut y avoir des
variation. En supposant que un exécutable est un fichier régulier qui
a un droit d'accès x pour le propriétaire, et en supposant qu'aucun
d'entre eux ne contient d'espace ou autre caractère problématique:

cd un-repertoire ; mv `find * -type f -perm -0100 -print` autre-repertoire/

ou:

cd un-repertoire ; /bin/ls -l | egrep '^-..[xs].*'
| while read a l o g s d h file ; do
mv "$file" autre-repertoire ; done



Mais on peut avoir d'autres définitions pour "exécutable"...

--
__Pascal_Bourguignon__ http://www.informatimago.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Living free in Alaska or in Siberia, a grizzli's life expectancy is 35 years,
but no more than 8 years in captivity. http://www.theadvocates.org/

Avatar
Stephane Chazelas
2003-11-25, 07:45(+00), DomiPi:
[...]
Dans un shell, comment lister uniquement les fichiers exécutables ?
ls ??? find ???
Réelement ce que je veux faire c copier les exécutables d'un répertoire vers
un autre


cp /un/repertoire/*(D*) /un/autre

(shell zsh).

(ça copie les fichiers réguliers qui sont exécutables par au
moins une personne, enfin qui ont au moins un bit x, enlève le
"D" si tu ne veux pas les dotfiles)

Si tu n'as pas zsh, le mieux est probablement d'utiliser find ou
perl.

find /un/repertoire/. ( -name . -o -prune ) -type f
( -perm -1 -o -perm -10 -o -perm -100 ) -exec
cp '{}' /un/autre ;

Rajoute un "-name '[^.]*'" si tu ne veux pas les dotfiles.

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]

Avatar
DomiPi
C bien avec un bit x que je comprends executable
Merci à Pascal et Stephane

Dominique

"DomiPi" a écrit dans le message de
news:0MDwb.298121$
Bonjour,
Petite question simple mais je cale ...
Dans un shell, comment lister uniquement les fichiers exécutables ?
ls ??? find ???
Réelement ce que je veux faire c copier les exécutables d'un répertoire
vers

un autre
Merci à tous
Dominique




Avatar
Pascal Bourguignon
"DomiPi" writes:

C bien avec un bit x que je comprends executable


Avec exactement 1 bit x, ou avec 1, 2, ou 3 ?
Avec exactement le bit x du propriétaire, du groupe ou des autres?


Si c'est un gros OU: find . -perm +111
Si c'est un ET: find . -perm -111




(Sans parler de cas particuliers, comme de fichiers nommées toto.exe
(exécutable MS-DOS) ou de dossier nommés toto.app (application
MacOSX), puisque tu veux un fichier avec un bit x).

--
__Pascal_Bourguignon__ http://www.informatimago.com/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Living free in Alaska or in Siberia, a grizzli's life expectancy is 35 years,
but no more than 8 years in captivity. http://www.theadvocates.org/

Avatar
DomiPi
Merci pour la précision
Seul le 1 m'intéressait
En fait le man de mon "find" ne me permettait pas de comprendre comment ca
marche
Je vais essayer de trouver + d'explication du "find" evec exemples sur le
net à moins que
qqun connaisse déjà une bonne adresse ?
Dominique

"Pascal Bourguignon" a écrit dans le
message de news:
"DomiPi" writes:

C bien avec un bit x que je comprends executable


Avec exactement 1 bit x, ou avec 1, 2, ou 3 ?
Avec exactement le bit x du propriétaire, du groupe ou des autres?


Si c'est un gros OU: find . -perm +111
Si c'est un ET: find . -perm -111




(Sans parler de cas particuliers, comme de fichiers nommées toto.exe
(exécutable MS-DOS) ou de dossier nommés toto.app (application
MacOSX), puisque tu veux un fichier avec un bit x).

--
__Pascal_Bourguignon__
http://www.informatimago.com/


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~
Living free in Alaska or in Siberia, a grizzli's life expectancy is 35
years,

but no more than 8 years in captivity.
http://www.theadvocates.org/