4 votes

Comment trouver tous les fichiers exécutables ? (AIX)

Exemple

-rwxr--r--    1 me     users             0 May 27 13:58 file_0
-rw-rwxrw-    1 me     users             0 May 27 13:58 file_1
-rw-rw-rwx    1 me     users             0 May 27 13:59 file_2
-rwxrwxrwx    1 me     users             0 May 27 14:02 file_3

J'aurais besoin de lister les 4 fichiers dans le répertoire actuel.

  • AIX
  • non-gnu 'find', donc "find . -executable" ne fonctionnera pas

0 votes

Vous voulez faire cela à partir de la ligne de commande ou d'un programme ?

0 votes

Webwesen, pouvez-vous renommer ce sujet en "Comment trouver tous les fichiers exécutables sur AIX" ?

6voto

Re0sless Points 5356
find . -type f \( -perm -u=x -o -perm -g=x -o -perm -o=x \)

Cela a fonctionné pour moi. D'autres solutions ?

5voto

find . -type f -perm +111

De find(1) :

-perm [-|+] mode

El mode peut être soit symbolique (voir chmod(1) ) ou un nombre octal. Si le mode est symbolique, une valeur de départ de zéro est supposée et l'option mode définit ou efface les permissions sans tenir compte du masque de création du mode fichier du processus. Si le mode est octal, seuls les bits 07777 ( S_ISUID | S_ISGID | S_ISTXT | S_IRWXU | S_IRWXG | S_IRWXO ) des bits de mode du fichier participent à la comparaison. Si le mode est précédé d'un tiret (" - "), ce primaire est évalué à true si au moins tous les bits du mode sont définis dans les bits de mode du fichier. Si le mode est précédé d'un plus (" + "), cette primaire est évaluée à true si l'un des bits de l'élément mode sont définis dans les bits de mode du fichier. Sinon, cette primaire est évaluée à true si les bits de la balise mode correspondent exactement aux bits de mode du fichier. Notez que le premier caractère d'un mode symbolique ne peut pas être un tiret (" - ").

Non spécifié dans SUSv3, mais portable sur *BSD et Linux au moins (je n'ai pas testé les autres).

0 votes

J'ai essayé avant de poster - cela ne fonctionne pas sur AIX - du moins. Rien n'est renvoyé. $ uname -a AIX xyz 3 5 00000000000 $ find . -type f -perm +111 $ ||| désolé - le formatage dans les commentaires n'est pas supporté apparemment

0 votes

Cela ne fonctionne pas sur AIX 6, du moins pour moi.

0voto

Gavin McTaggart Points 1806

Eh bien, si vous aimez Dispositifs Rube Goldberg vous pourriez utiliser :

ls -l | grep '^[^d]\(..x\|.\{5\}x\|.\{8\}x\)' | awk '{ print $8 }'

Bien que cela ne liste que le répertoire courant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X