Y a-t-il un moyen d'obtenir les autorisations des fichiers/répertoires en format numérique "0777" au lieu du format "-rw--r--r" ?
Réponses
Trop de publicités?Vous pouvez afficher les autorisations octales pour un fichier en utilisant la commande stat :
stat -c %a [nom_de_fichier]
Ou en utilisant find :
find [chemin] -printf '%m %p\n'
Notez que find est récursif et affichera tous les fichiers dans tous les sous-répertoires également. Vous pouvez utiliser des options comme maxdepth
ou prune
pour l'empêcher de se récuser.
Je sais que c'est un ancien post mais je l'ai trouvé en cherchant une solution à cela, et j'ai développé :
stat -c '%a - %n'
Cela affichera les permissions du 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 également poussé cela plus loin et j'ai créé un alias :
alias perms="stat -c '%a - %n'"
Ainsi en tapant perms * cela me donnera les permissions de chaque fichier ou perms fichier.php me donnera les permissions de ce seul fichier.
Pour les utilisateurs qui trouvent cela en cherchant une solution pour OSX :
Les versions d'OSX après 10.10 n'ont plus de version de stat qui accepte le paramètre -c. Si vous obtenez une erreur "option illégale -- c" alors vous devriez pouvoir utiliser cette commande stat :
stat -f "%A - %N" *
Cela peut également être mis en alias comme la commande précédente que j'ai partagée :
alias perms="stat -f '%A - %N'"
Vous pouvez également utiliser cette solution de contournement:
find NOM_FICHIER/RÉPERTOIRE -printf "%m:%f\n"
Exemple : vérifiez mon répertoire Vidéos:
find Vidéos -printf "%m:%f\n"
755:Vidéos
Une autre méthode:
Utilisée pour lister tous les fichiers de répertoire avec leurs autorisations
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}'