web-dev-qa-db-fra.com

Afficher les autorisations de fichiers au format numérique, c'est-à-dire "0755"?

Existe-t-il un moyen d'obtenir les autorisations de fichiers/répertoires au format numérique "0777" au lieu du format "-rw -r -r"?

27
amosrivera

Vous pouvez afficher les autorisations octales d'un fichier à l'aide de la commande stat:

stat -c %a [filename]

Ou en utilisant find:

find [path] -printf '%m %p\n'

Notez que find est récursif et imprimera également tous les fichiers de tous les sous-répertoires. Vous pouvez utiliser des options telles que maxdepth ou Prune pour l’empêcher de se répéter.

35
Cedric

Je sais que ceci est un ancien billet, mais je l'ai trouvé en cherchant une solution à ce problème et l'ai développé:

stat -c '%a - %n'

Cela montrera les autorisations de fichier et le nom du fichier. Cela vous permet de voir les permissions de chaque fichier dans un dossier avec:

stat -c '%a - %n' *

J'ai aussi fait un pas de plus et fait un pseudonyme:

alias perms="stat -c '%a - %n'"

Donc, taper perms * me donnera les permissions de chaque fichier ou perms file.php me donnera les permissions de ce seul fichier.

7
rmmoul

Vous pouvez également utiliser cette solution de contournement:

find FILENAME/DIRECROY -printf "%m:%f\n"

Exemple, consultez mon répertoire de vidéos:

find Videos -printf "%m:%f\n"

755:Videos

ne autre méthode:

Utilisé pour lister tous les fichiers de répertoires avec leurs permissions

ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/) \
             *2^(8-i));if(k)printf("%0o ",k);print}'
6
Maythux