cClaude.rocks ☕ Le blog

[Nouvelles technologies, sciences et coups de gueule…]

Menu

L’option -printf fait partie des tests spĂ©ciaux de la commande, qui retourne toujours vrai mais qui permet de modifier la sortie standard de la commande, en interprĂ©tant les sĂ©quences d’échappement \ et les directives %.

L’utilisation de cette option est largement sous exploitĂ©, car elle Ă©vite de devoir analyser la sortie de find pour retrouver certaines informations du fichier, elle peut ĂȘtre avantageusement utilisĂ©e en lieu et place de -exec qui nĂ©cessite la crĂ©ation de processus fils.


ඏ

La largeur et la prĂ©cision des champs peuvent ĂȘtre spĂ©cifiĂ©s comme dans la fonction printf du langage C. Mais notez que la plupart des champs sont affichĂ©s Ă  l’aide de %s plutĂŽt que %d, ce qui veut dire que les drapeaux ne fonctionneront peut-ĂȘtre pas comme vous vous y attendiez. Cela veut aussi dire que le drapeau - fonctionnera (il force l’alignement des champs Ă  gauche).

La documentation de find met en garde sur les noms de fichiers peu courants contenant des caractĂšres inhabituels. Ce n’est pas un problĂšme spĂ©cifique Ă  find, mais cette commande est souvent liĂ©e Ă  des traitements massifs et elle « dĂ©couvre » les noms de fichier, les risques sont donc nĂ©cessairement plus grands.

De maniĂšre gĂ©nĂ©rale, il vaut mieux bannir autant que possible les fichiers ayant des espaces. À ma connaissance, il n’y a aucune solution fiable pour traiter des fichiers avec des noms contenant un saut de ligne avec bash, tout autre langages de scripts.

Contrairement à -print, -printf n’ajoute pas de saut de ligne à la fin de la chaüne.

SĂ©quences d’échappements

Pour commencer voici les sĂ©quences d’échappement permettant de gĂ©rer les caractĂšres spĂ©ciaux :

  • SĂ©quences d’échappements
    Description
    \a Sonnerie (Beep)
    \b Effacement arriĂšre (Backspace)
    \c ArrĂȘter immĂ©diatement l’impression du format et vider le flux de sortie
    \f Saut de page
    \n Saut de ligne
    \r Retour chariot
    \t Tabulation horizontale
    \v Tabulation verticale
    \0 CaractĂšre ASCII NUL
    \\ Un caractÚre \ littéral
    \NNN Le caractĂšre ASCII dont le code est NNN (en octal)

    Un \ suivi de n’importe quel autre caractĂšre est traitĂ© comme un caractĂšre ordinaire ; les deux caractĂšres sont donc affichĂ©s.

Les directives principales

Les principales directives sont les suivantes :

Description
%% Un caractÚre pourcentage littéral %.
%a Date du dernier accÚs au fichier, dans le format renvoyé par la fonction C ctime.
%Ak Date du dernier accÚs au fichier, dans le format spécifié par k, voir ci-dessous le formatage des dates.
%c Date de derniÚre modification du statut du fichier, dans le format renvoyé par la fonction C ctime.
%Ck Date de derniÚre modification du statut du fichier, dans le format spécifié par k, voir ci-dessous le formatage des dates.
%d Profondeur du fichier dans l’arborescence des rĂ©pertoires, 0 signifiant que le fichier est un paramĂštre de la ligne de commande (typiquement le rĂ©pertoire oĂč Ă  commencer la recherche).
%f Nom du fichier, sans aucun nom de répertoire (dernier élément uniquement).
%g Nom du groupe propriĂ©taire du fichier, ou identifiant de groupe numĂ©rique si le groupe n’a pas de nom.
%G Identifiant de groupe numérique du fichier.
%h RĂ©pertoires en tĂȘte du nom de fichier (tout sauf la derniĂšre partie). Si le nom du fichier ne contient aucune barre oblique (/) (donc si c’est un fichier du rĂ©pertoire courant), alors l’option %h rajoutera ..
%l Destination du lien symbolique (vide si le fichier n’est pas un lien symbolique).
%m Bits d’autorisation d’accĂšs au fichier (en octal). Cette option utilise les nombres « traditionnellement » utilisĂ©s dans la plupart des implĂ©mentations d’Unix, mais si votre systĂšme utilise un ordre inhabituel de la forme octale des bits de permissions, alors vous observerez une diffĂ©rence entre la valeur rĂ©elle des modes du fichier et la sortie de %m. On veut habituellement un zĂ©ro en dĂ©but de ce nombre, et pour l’obtenir, vous pouvez utiliser le drapeau # (« %#m », par exemple).
%M Les permissions du fichier (sous forme symbolique, comme dans ls).
%n Nombre de liens physiques sur le fichier.
%p Nom du fichier.
%P Nom du fichier, en retirant le nom du paramÚtre de ligne de commande à partir duquel le fichier a été trouvé.
%s Taille du fichier en octets.
%t Date de derniÚre modification du fichier, dans le format renvoyé par la fonction C ctime.
%Tk Date de derniÚre modification du fichier, dans le format spécifié par k, voir ci-dessous le formatage des dates.
%u Nom du propriĂ©taire du fichier, ou identifiant utilisateur numĂ©rique si l’utilisateur n’a pas de nom.
%U Identifiant utilisateur numérique du propriétaire du fichier.
%y Type du fichier (comme dans ls -l), U pour type inconnu (ce qui ne devrait pas arriver).
%Y Type du fichier (comme pour %y), suivi, pour les liens symboliques, de : L=boucle, N=inexistant.

Un caractĂšre % suivi de n’importe quel autre caractĂšre est supprimĂ©, mais le second caractĂšre est affichĂ© (ne soyez pas trop confiant cependant, car de nouveaux caractĂšres de format pourront ĂȘtre un jour utilisĂ©s). Un % Ă  la fin de l’argument de format peut engendrer un comportement alĂ©atoire puisqu’il n’y a aucun caractĂšre suivant. Ce qui peut ĂȘtre plus ou moins grave suivant les cas.

Les options %m et %d gĂšrent les drapeaux #, 0 et +, Ă  l’inverse des autres directives, mĂȘme si elles affichent des nombres. Les autres directives numĂ©riques qui ne gĂšrent pas ces drapeaux sont G, U, b, D, k et n. Le drapeau de format - est gĂ©rĂ©, et transforme l’alignement des champs (qui sont par dĂ©faut alignĂ©s Ă  droite) en alignement Ă  gauche.

La gestion de l’affichage des dates

  • Formattage des dates

    Pour contrîler l’affichage des dates dans le cas des directives : %Ak (dernier accùs au fichier), %Ck (derniùre modification du statut du fichier), %Tk (derniùre modification du fichier) il existe de plusieurs options.

    Le format spĂ©cifiĂ© par k, qui doit ĂȘtre soit un @, soit une directive pour la fonction C strftime. Les valeurs possibles de k sont indiquĂ©es ci-dessous, certaines d’entre elles ne sont pas disponibles sur tous les systĂšmes, Ă  cause des diffĂ©rences entre les fonctions strftime existantes.

    Description
    @ Secondes écoulées depuis le 1er janvier 1970 à 00 h 00 GMT, avec une partie décimale.

    Champs horaires :

    Description
    H Heure (00..23)
    I Heure (01..12)
    k Heure (0..23)
    l Heure (1..12)
    M Minute (00..59)
    p AM ou PM, avec la désignation locale
    r Heure au format 12 heures (hh:mm:ss [AP]M)
    S Seconde (00.00 .. 61.00). Accepte une partie décimale.
    T Heure au format 24 heures (hh:mm:ss)
    + La date et l’heure, sĂ©parĂ©es par un +, 2004-04-28+22:22:05 par exemple. Ceci est une extension GNU. L’heure est donnĂ©e dans la zone horaire courante (qui peut ĂȘtre modifiĂ©e via la variable d’environnement TZ). Le second champ contient une partie dĂ©cimale.
    X ReprĂ©sentation locale de l’heure (H:M:S)
    Z Fuseau horaire (par exemple MET), ou rien si le fuseau horaire est indéterminé.

    Champs de date :

    Description
    a Abréviation locale du jour de la semaine (lun..dim)
    A Nom local entier du jour de la semaine, de longueur variable (lundi..dimanche)
    b Abréviation locale du mois (jan..déc)
    B Nom local entier du mois, de longueur variable (janvier..décembre)
    c Date et heure locale (Sat Nov 04 12:02:33 EST 1989). Le format utilisĂ© est le mĂȘme que pour ctime, et, afin de prĂ©server la compatibilitĂ© avec ce format, il n’y a pas de partie dĂ©cimale pour les secondes.
    d QuantiĂšme du mois (01..31)
    D Date (mm/jj/aa)
    h Identique Ă  b
    j Jour de l’annĂ©e (001..366)
    m Mois (01..12)
    U NumĂ©ro de la semaine dans l’annĂ©e, les semaines commençant le dimanche (00..53)
    w Jour de la semaine (0..6)
    W NumĂ©ro de la semaine dans l’annĂ©e, les semaines commençant le lundi (00..53)
    x Représentation locale de la date (mm/jj/aa)
    y Les deux derniers chiffres de l’annĂ©e (00..99)
    Y Année (1970
)

Les directives plus complexes

Le tableau des directives -printf a Ă©tĂ© volontairement nettoyĂ© des directives dont l’utilitĂ© peuvent ĂȘtre moins Ă©videntes.

  • Autres directives
    Description
    %b Taille de l’espace disque consommĂ© par le fichier, en nombre de blocs de 512 octets. Puisque l’espace disque est allouĂ© par multiple de la taille d’un bloc du systĂšme de fichiers, on obtient souvent un rĂ©sultat supĂ©rieur Ă  %s/512. Il peut aussi ĂȘtre infĂ©rieur si le fichier est creux (« sparse file »).
    %D Le numéro du périphérique sur lequel le fichier est rangé (la valeur du champ st_dev field de la structure stat) exprimé en décimal.
    %F Type de systĂšme de fichiers sur lequel se trouve le fichier. Cette valeur peut ĂȘtre utilisĂ©e pour l’option -fstype.
    %k Taille du fichier, en nombre de blocs de 1 kilo-octet. Puisque l’espace disque est allouĂ© par multiple de la taille d’un bloc du systĂšme de fichiers, on obtient souvent un rĂ©sultat supĂ©rieur Ă  %s/1024. Il peut aussi ĂȘtre infĂ©rieur si le fichier est Ă©parpillĂ©.
    %H ParamÚtre de la ligne de commande à partir duquel le fichier a été trouvé.
    %i NumĂ©ro d’« inode » du fichier (en dĂ©cimal).
    %S DensitĂ© du fichier, calculĂ©e par la formule (TAILLEBLOC*nb_bloc/taille_fichier). La valeur obtenue pour un fichier rĂ©gulier d’une certaine taille dĂ©pend du systĂšme d’exploitation. Toutefois, la valeur normalement attendue pour un fichier creux (« sparse file ») est infĂ©rieure Ă  1.0, tandis qu’un fichier qui utilise l’indirection de blocs pourra obtenir une valeur supĂ©rieure Ă  1.0. La valeur de TAILLEBLOC est dĂ©pendante du systĂšme, mais est souvent de 512 octets. Si le fichier a une taille nulle, la valeur affichĂ©e est indĂ©finie. Sur les systĂšmes qui n’offrent pas la gestion des nombres de blocs, la valeur de la densitĂ© du fichier sera de 1.0.

ඏ

Liens

኿


Sous Linux/Unix, les fichiers sont identifiés par leur nom et sont caractérisé par leurs attributs.

Les attributs de fichier sont des propriĂ©tĂ©s (mĂ©tadonnĂ©es) qui dĂ©crivent le comportement du fichier. Plus prĂ©cisĂ©ment ils dĂ©crivent l’interaction entre le systĂšme et le fichier.

Si vous ĂȘtes familier avec les attributs sous Windows, il y a des points communs mais aussi des divergences. En particulier, le fait qu’un fichier soit « exĂ©cutable » sous Windows est liĂ© Ă  son extension alors que sous Linux c’est un attribut qui dĂ©fini cela. Inversement le fait qu’un fichier soit cachĂ© sous Windows est liĂ© Ă  l’attribut alors que sous Linux c’est la fait que le nom commence par un point.

Sous Linux les attributs n’indique rien sur la nature du contenu du fichier, ils servent Ă  la gestion des droits d’accĂšs et dans certains cas modifier les privilĂšges de l’environnement d’exĂ©cution.

La gestion des attributs depuis l’interface graphique est assez problĂ©matique, puisqu’il est trop facile de faire un traitement rĂ©cursif et si la gestion des droits vous empĂȘchera d’abĂźmer votre systĂšme (au moins temps que vous n’utilisez pas les droits administrateurs), il peut quand mĂȘme rendre votre environnement utilisateur inutilisable.


ඏ

Afficher les attributs

En ligne de commande la commande de base pour voir le contenu d’un rĂ©pertoire est : ls. Cependant de base, cette commande ne permet pas de voir les attributs, pour cela il faut utiliser le format long : ls -l. Pour inclure les fichiers cachĂ©s vous devez utiliser ls -la.

Notez que la commande ls -la ne permet d’accĂ©der Ă  tous les attributs, c’est uniquement les attributs communs qui sont affichĂ©s.

Voici les principales commandes permettant de voir les attributs d’un fichier :

ls -la ~/.profile
-rw-r--r-- 1 USER GROUP 971 mars   8  2021 /home/USER/.profile
lsattr ~/.profile
--------------e----- /home/USER/.profile
stat ~/.profile
  File: /home/USER/.profile
  Size: 971         Blocks: 8          IO Block: 4096   regular file
Device: 801h/2049d  Inode: 10486149    Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1001/  USER)   Gid: ( 1001/  GROUP)
Access: 2022-05-22 09:27:21.702289804 +0200
Modify: 2021-03-08 17:20:09.283278126 +0100
Change: 2021-09-21 19:51:46.298172540 +0200
 Birth: -

Les attributs de base

La commande la plus commune utilisĂ©e pour afficher les attributs d’un fichier est ls, et tant que vous limiter Ă  un simple affichage des attributs de base, cela est largement suffisant.

ls -l /path/to/directory
total 128
drwxr-xr-x 2 nom users  4096 Jul  5 21:03 Desktop
drwxr-xr-x 6 nom users  4096 Jul  5 17:37 Documents
drwxr-xr-x 2 nom users  4096 Jul  5 13:45 Downloads
-rw-rw-r-- 1 nom users  5120 Jun 27 08:28 customers.ods
-rw-r--r-- 1 nom users  3339 Jun 27 08:28 todo
-rwxr-xr-x 1 nom users  2048 Jul  6 12:56 myscript.sh

C’est la premiĂšre qui nous intĂ©resse concernant les attributs, prenons l’exemple drwxrwxrwx+, voici l’explication de chaque caractĂšre :

d rwx rwx rwx +
Le type de fichier, qui ne fait techniquement pas partie de ses permissions. Voir : info ls -n "What information is listed" pour une explication des valeurs possibles. d indique que l’on a faire un rĂ©pertoire (« directory »). Les autorisations que le propriĂ©taire a sur le fichier, voir ci-dessous. Les autorisations que le groupe a sur le fichier, voir ci-dessous. Les autorisations que tous les autres utilisateurs ont sur le fichier, voir ci-dessous. Un caractĂšre unique qui indiquant si une mĂ©thode d’accĂšs alternative s’applique au fichier. Lorsque ce caractĂšre est un espace, il n’y a pas de mĂ©thode d’accĂšs alternative. Le caractĂšre . indique un fichier avec un contexte de sĂ©curitĂ©, mais aucune autre mĂ©thode d’accĂšs alternative. Un fichier comportant toute autre combinaison de mĂ©thodes d’accĂšs alternatives est signalĂ© par le caractĂšre +, par exemple dans le cas des listes de contrĂŽle d’accĂšs.

Chacune des trois triplets de permission (rwx dans l’exemple ci-dessus) peut ĂȘtre composĂ©e des caractĂšres suivants :

  CaractĂšre Effet sur les fichiers Effet sur les rĂ©pertoires
Permission de Lecture (1er caractĂšre) - Le fichier ne peut pas ĂȘtre lu. Le contenu du rĂ©pertoire ne peut pas ĂȘtre lu.
r Le fichier peut ĂȘtre lu. Le contenu du rĂ©pertoire peut ĂȘtre lu.
Permission d’écriture (2ᔈ caractĂšre) - Le fichier ne peut pas ĂȘtre modifiĂ©. Le contenu du rĂ©pertoire ne peut pas ĂȘtre modifiĂ©.
w Le fichier peut ĂȘtre modifiĂ©. Le contenu du rĂ©pertoire peut ĂȘtre modifiĂ© (crĂ©ation de nouveaux fichiers ou rĂ©pertoires ; renommer ou supprimer des fichiers ou rĂ©pertoires existants) ; nĂ©cessite que la permission d’exĂ©cution soit Ă©galement dĂ©finie, sinon cette permission n’a aucun effet.
Permission d’exĂ©cution (3ᔉ caractĂšre) - Le fichier ne peut pas ĂȘtre exĂ©cutĂ©. Le rĂ©pertoire ne peut pas ĂȘtre accĂ©dĂ©.
x Le fichier peut ĂȘtre exĂ©cutĂ©. Le rĂ©pertoire est accessible avec cd : c’est le seul bit de permission qui, en pratique, peut ĂȘtre considĂ©rĂ© comme « hĂ©rité » des rĂ©pertoires parents, en fait, si un rĂ©pertoire du chemin n’a pas le bit x activĂ©, le fichier ou le rĂ©pertoire final n’est pas accessible non plus, quelles que soient ses permissions ; voir path_resolution(7) pour plus d’informations.
s Le bit setuid: lorsqu’il est trouvĂ© dans le triplet de l’utilisateur ; le bit setgid lorsqu’il est trouvĂ© dans le triplet du groupe ; ce caractĂšre indique Ă©galement que x est activĂ©. Cette valeur n’existe pas pour les « autres » utilisateurs : « other »).
S Identique Ă  s, mais x n’est pas actif, rare sur les fichiers normaux, sans effet sur les rĂ©pertoires.
t Valeur uniquement pour le triplet des autres utilisateurs (« others ») qui indique l’activation du « sticky bit »; indique que x est actif.
T Identique à t, mais x n’est pas actif ; rare sur les fichiers normaux.

Les attributs setuid, setgid et sticky bit sont rarement manipulĂ© par les utilisateurs, ce sont plutĂŽt des notions qui sont gĂ©rĂ©es lors de l’installation d’une application, et donc des notions liĂ©s Ă  l’administration de la machine.

Ce sont des attributs dĂ©licats Ă  manipuler, gĂ©nĂ©ralement inaccessibles depuis l’interface graphique.

  • setuid et setgid

    Les droits d’accĂšs « setuid » et « setgid » (abrĂ©viation de « set user ID » et « set group ID ») permettent aux utilisateurs d’exĂ©cuter un exĂ©cutable avec les autorisations de systĂšme de fichiers du propriĂ©taire ou du groupe de l’exĂ©cutable respectivement et de modifier le comportement dans les rĂ©pertoires.

    Ils sont gĂ©nĂ©ralement utilisĂ©s pour permettre aux utilisateurs d’un systĂšme informatique d’exĂ©cuter des programmes avec des privilĂšges temporairement Ă©levĂ©s afin d’effectuer une tĂąche spĂ©cifique. Bien que les privilĂšges supposĂ©s de l’id utilisateur ou de l’id groupe fournis ne soient pas toujours Ă©levĂ©s, ils sont au moins spĂ©cifiques.

    Les drapeaux « setuid » et « setgid » sont nĂ©cessaires pour les tĂąches qui requiĂšrent des privilĂšges diffĂ©rents de ceux accordĂ©s normalement Ă  l’utilisateur, comme la possibilitĂ© de modifier les fichiers ou les bases de donnĂ©es du systĂšme ou de changer son mot de passe de connexion.

    Les drapeaux « setuid » et « setgid » n’ont un effet que sur les fichiers exĂ©cutables binaires et non sur les scripts (par exemple, Bash, Perl, Python).

  • sticky bit

    Le « sticky bit » est un indicateur de droit d’accĂšs Ă  la propriĂ©tĂ© de l’utilisateur qui peut ĂȘtre attribuĂ© aux fichiers et aux rĂ©pertoires sur les systĂšmes de type Unix.

    Il existe deux définitions : une pour les fichiers, une pour les répertoires.

    Pour les fichiers, il y a des raisons historiques de l’existence de cet attribut, il est maintenant obsolĂšte et n’a gĂ©nĂ©ralement plus d’effet sur les noyaux Linux modernes.

    Pour les rĂ©pertoires, lorsque le « sticky bit » d’un rĂ©pertoire est activĂ©, le systĂšme de fichiers traite les fichiers de ces rĂ©pertoires d’une maniĂšre spĂ©ciale afin que seul le propriĂ©taire du fichier, le propriĂ©taire du rĂ©pertoire ou le super-utilisateur puisse renommer ou supprimer le fichier. Sans le « sticky bit » activĂ©, tout utilisateur ayant des droits d’écriture et d’exĂ©cution pour le rĂ©pertoire peut renommer ou supprimer les fichiers contenus, quel que soit le propriĂ©taire du fichier. GĂ©nĂ©ralement, cette option est dĂ©finie sur le rĂ©pertoire /tmp pour empĂȘcher les utilisateurs ordinaires de supprimer ou de dĂ©placer les fichiers d’autres utilisateurs.


ඏ

Affichage récursif des attributs

La commande find est particuliÚrement efficace pour afficher les attributs. En premier lieu, on peut penser à la directive -ls bien que le résultat soit un peu verbeux.

find . -ls
  • Exemple
    find /usr/bin/ -name 'a*e' -ls
    
     11802180     24 -rwxr-xr-x   1 root     root        22768 juil.  6  2021 /usr/bin/avahi-resolve
     11823595     36 -rwxr-xr-x   1 root     root        33874 janv.  2  2020 /usr/bin/autoupdate
     11798651      0 lrwxrwxrwx   1 root     root           26 oct. 20  2021 /usr/bin/addr2line -> x86_64-linux-gnu-addr2line
     11796544      0 lrwxrwxrwx   1 root     root           26 mars 16  2019 /usr/bin/aptitude -> /etc/alternatives/aptitude
     11803119      0 lrwxrwxrwx   1 root     root           25 déc.  4  2020 /usr/bin/animate -> /etc/alternatives/animate
     11802567      0 lrwxrwxrwx   1 root     root           13 juil.  6  2021 /usr/bin/avahi-publish-service -> avahi-publish
     11802423     16 -rwxr-xr-x   1 root     root        14576 juil.  6  2021 /usr/bin/avahi-set-host-name
     11797408      8 -rwxr-xr-x   1 root     root         6415 avril  1  2020 /usr/bin/apt-clone
     11805279     88 -rwxr-xr-x   1 root     root        88536 avril 25 15:58 /usr/bin/apt-cache
     11796778     32 -rwxr-xr-x   1 root     root        31073 févr.  9  2019 /usr/bin/apt-file
     11802315    276 -rwxr-xr-x   1 root     root       281056 avril 25 15:58 /usr/bin/apt-ftparchive
     11798734     32 -rwxr-xr-x   1 root     root        30968 juil.  6  2021 /usr/bin/avahi-browse
     11796529      0 lrwxrwxrwx   1 root     root           26 juil.  9  2020 /usr/bin/automake -> /etc/alternatives/automake
     11819773     32 -rwxr-xr-x   1 root     root        32671 janv.  2  2020 /usr/bin/autom4te
     11796546      4 -rwxr-xr-x   1 root     root         1939 févr. 27  2020 /usr/bin/aptitude-create-state-bundle
     11798732      4 -rwxr-xr-x   1 root     root         2850 févr. 27  2020 /usr/bin/aptitude-run-state-bundle
     11802642      0 lrwxrwxrwx   1 root     root           13 juil.  6  2021 /usr/bin/avahi-resolve-host-name -> avahi-resolve
    

La directive -printf est sans doute plus facile à exploiter :

find . -printf '%M %p\n'
  • Exemple
    find /usr/bin/ -name 'a*e' -printf '%M %p\n'
    
    -rwxr-xr-x /usr/bin/avahi-resolve
    -rwxr-xr-x /usr/bin/autoupdate
    lrwxrwxrwx /usr/bin/addr2line
    lrwxrwxrwx /usr/bin/aptitude
    lrwxrwxrwx /usr/bin/animate
    lrwxrwxrwx /usr/bin/avahi-publish-service
    -rwxr-xr-x /usr/bin/avahi-set-host-name
    -rwxr-xr-x /usr/bin/apt-clone
    -rwxr-xr-x /usr/bin/apt-cache
    -rwxr-xr-x /usr/bin/apt-file
    -rwxr-xr-x /usr/bin/apt-ftparchive
    -rwxr-xr-x /usr/bin/avahi-browse
    lrwxrwxrwx /usr/bin/automake
    -rwxr-xr-x /usr/bin/autom4te
    -rwxr-xr-x /usr/bin/aptitude-create-state-bundle
    -rwxr-xr-x /usr/bin/aptitude-run-state-bundle
    lrwxrwxrwx /usr/bin/avahi-resolve-host-name
    

Il est mĂȘme possible d’avoir la version octale des attributs :

find . -printf '%m %p\n'
  • Exemple
    find /usr/bin/ -name 'a*e' -printf '%m %p\n'
    
    755 /usr/bin/avahi-resolve
    755 /usr/bin/autoupdate
    777 /usr/bin/addr2line
    777 /usr/bin/aptitude
    777 /usr/bin/animate
    777 /usr/bin/avahi-publish-service
    755 /usr/bin/avahi-set-host-name
    755 /usr/bin/apt-clone
    755 /usr/bin/apt-cache
    755 /usr/bin/apt-file
    755 /usr/bin/apt-ftparchive
    755 /usr/bin/avahi-browse
    777 /usr/bin/automake
    755 /usr/bin/autom4te
    755 /usr/bin/aptitude-create-state-bundle
    755 /usr/bin/aptitude-run-state-bundle
    777 /usr/bin/avahi-resolve-host-name
    

La commande lsattr permet d’afficher les attributs des fichiers sur une partition Linux de type ext2, ext3, ext4 et quelques autres. Les commandes lsattr et chattr permettent d’atteindre des attributs de fichiers inaccessibles aux commandes standards, comme le fait de rendre un fichier immuable.

find . -type f -exec lsattr {} \;

Notez que lsattr n'aime pas les liens symboliques et dans ce cas sur la plupart des Linux une erreur sera retournée lors du traitement d'un tel fichier.

  • Exemple
    find /usr/bin/ -name 'a*e' -exec lsattr {} \;
    
    --------------e----- /usr/bin/avahi-resolve
    --------------e----- /usr/bin/autoupdate
    lsattr: Operation not supported While reading flags on /usr/bin/addr2line
    lsattr: Operation not supported While reading flags on /usr/bin/aptitude
    lsattr: Operation not supported While reading flags on /usr/bin/animate
    lsattr: Operation not supported While reading flags on /usr/bin/avahi-publish-service
    --------------e----- /usr/bin/avahi-set-host-name
    --------------e----- /usr/bin/apt-clone
    --------------e----- /usr/bin/apt-cache
    --------------e----- /usr/bin/apt-file
    --------------e----- /usr/bin/apt-ftparchive
    --------------e----- /usr/bin/avahi-browse
    lsattr: Operation not supported While reading flags on /usr/bin/automake
    --------------e----- /usr/bin/autom4te
    --------------e----- /usr/bin/aptitude-create-state-bundle
    --------------e----- /usr/bin/aptitude-run-state-bundle
    lsattr: Operation not supported While reading flags on /usr/bin/avahi-resolve-host-name
    

La commande stat permet d’afficher l’état d’un fichier ou d’un systĂšme de fichiers. Elle offre en outre la possibilitĂ© de formater la sortie.

Ainsi l'écriture :

find . -type f -exec stat -c '%a %n' {} \;

est équivalente à :

find . -type f -printf '%m %p\n'

Pour les traitements récursifs sur les attributs, il est plutÎt judicieux de séparer les traitements sur les fichiers des traitements sur les dossiers, surtout lorsque vous souhaiter modifier des attributs.

Ce billet n’aborde pas la modification des attributs, car le cas gĂ©nĂ©ral est plutĂŽt dĂ©licat, mĂȘme si les cas particuliers sont simples.


ඏ

Références pour aller plus loin

኿


Cette vidĂ©o Ă  de grande chance de vous concerner, il parle des « Bullshit jobs » une notion dĂ©veloppĂ©e par l’anthropologue David Graeber dans un livre de 2018.

David Graeber postule l’existence d’emplois dĂ©nuĂ©s de sens et analyse leur prĂ©judice sociĂ©tal. Son analyse l’amĂšnera Ă  affirmer que plus de la moitiĂ© du travail sociĂ©tal est inutile, et constatera que ce type d’emplois est psychologiquement destructeur particuliĂšrement lorsque l’éthique du travail qui lui est associĂ©, implique que le rĂ©sultat du travail soit liĂ© Ă  la valeur personnelle de l’employĂ©.

La vidéo de Blast est un échange (1 h 15) entre Nicolas Kayser Bril autour de ce sujet et de son livre « Imposture à temps complet ».


Les emplois qui ne servent à rien


pour la mission que c’est fixĂ© l’organisme employeur.

David Graeber qui par du principe que toute personne qui considĂšre qu’elle Ă  un boulot qui ne sert Ă  rien Ă  un « Bullshit job » Nicolas Kayser Bril va plus loin : il s’intĂ©resse d’abord au cadre de la mission que c’est fixĂ© l’organisation et regarde ensuite si le travail d’une personne donnĂ©e Ă  un sens vis-Ă -vis de cette mission.

Il constate finalement que nombre de personnes n’ont pas conscience qu’ils n’ont pas de valeur ajoutĂ©e dans le cas de la mission globale de l’organisation.

Nicolas Kayser Bril pense donc qu’il est plus pertinent de dĂ©finir le « Bullshit job » comme Ă©tant liĂ©e Ă  une tache qui n’apporte rien Ă  l’organisation, pour accomplir la mission de l’organisation, plutĂŽt que de parler de sens du travail.

L’interview s’attarde sur les anglicismes comme les « calls », le « blended learning » et autre « business plan » qui rendent les messages obscurs et d’avoir des concepts flous, rĂ©servĂ©s Ă  ceux qui « comprennent ». On comprend qu’ici que la notion de comprĂ©hension est trĂšs relative.

L’interview ne parle pas des sigles (« AESH », « CAA », « CAE », « CGEF », « DAAC », 
, « Zup ») qui jouent exactement le mĂȘme rĂŽle. D’ailleurs pour garantir l’hĂ©gĂ©monie des « spĂ©cialistes » de ce langage, l’administration les change rĂ©guliĂšrement.


Imposture Ă  temps complet

Comment les bullshits jobs détruisent nos sociétés

Zoom ArriĂšre par Denis Robert

Entretien avec Nicolas Kayser Bril

Être payĂ© Ă  ne rien faire est le rĂȘve de tous les paresseux, mais derriĂšre le hamac ou l’apparente facilitĂ©e Ă  ne rien faire, se cachent aussi un cauchemar et une Ă©conomie parfaitement absurde. Qui serait assez dingue pour payer un salariĂ© pour un boulot ne servant strictement Ă  rien ? Qui ? À lire le dernier livre de Nicolas Kayser Bril « Imposture Ă  temps complet » (Ă©ditions du Faubourg), ils sont de plus en plus nombreux et contaminant ces employeurs de Bullshit jobs et leur armada de glandeurs en tout genre chargĂ© de consultation bidon ou de certification inutile, palabrant des heures dans des rĂ©unions sans fondement, impliquĂ©s dans des gestions de portefeuilles ne rapportant pas un centime, auteurs de reporting chronophage


Et pourtant le bullshit job ne s’est jamais aussi bien portĂ© depuis une dizaine d’annĂ©es qui ont vu un peu partout en Europe l’avĂšnement des politiques nĂ©olibĂ©rales. Et le phĂ©nomĂšne serait en expansion galopante sous la prĂ©sidence d’Emmanuel Macron. 115 minutes d’un entretien dense et Ă©bouriffant qui laisse pantois. Attention les champions des bullshit jobs sont tous diplĂŽmĂ©s voire sur-diplĂŽmĂ©s. TrĂšs peu de pauvres ou de smicards dans ce monde-lĂ , mais beaucoup d’usurpateurs, d’imposteurs et de manipulateurs


Si vous voulez comprendre pourquoi les bullshit jobs sont des catalyseurs d’un État devenu mafieux et comment ils envahissent le monde, il faut suivre cet entretien jusqu’à son terme et sans bailler. Puis fermer dĂ©finitivement tous les ouvrages tentant de faire croire que l’économie serait une science rationnelle.

L’image n’est pas indispensable, vous pouvez vous contenter de l’écouter


Si vous souhaitez savoir pourquoi les « Bullshit jobs » envahissent le monde, il vous faudra lire le livre de Nicolas Kayser Bril_ : « Comment les bullshits jobs dĂ©truisent nos sociĂ©tĂ©s », l’interview Ă©ludant cette partie.

Il ne s’agit pas de [faire quelque chose], mais il s’agit de mettre en scĂšne une volontĂ© [de faire] de certains [dĂ©cideurs]


Les « Bullshit jobs » sont les premiers catalyseurs de l’état mafia



ඏ

Liens

኿


Navigation / 2 ⋙ 124

Les anciens billets sont Ă©galement disponibles dans les archives.

â„č 2006 - 2022 | 🏠 Accueil du domaine | 🏡 Accueil du blog