Comment puis-je connaître le mode (permissions) d'un répertoire?Comment puis-je connaître le mode (permissions) d'un répertoire?
Répondre
Selon perldoc -f stat
:
$mode = (stat($filename))[2];
printf "Permissions are %04o\n", $mode & 07777;
my $mode;
(undef, undef, $mode) = stat($directoryname);
D'autres exemples que vous devez savoir que le mode est le troisième élément de sortie de stat (c.-à-[2]). File :: stat vous permet de donner un nom symbolique.
use File::stat ;
my $dir = '/etc/cron.d' ;
printf "%o", stat($dir) -> mode ;
+ 1 ce module est mieux que le stat intégré – daxim
Bonne réponse jusqu'à maintenant. Je souhaite ajouter un bon module supplémentaire.
La plupart du temps, vous voulez seulement connaître le mode d'un fichier pour pouvoir le manipuler ensuite. use Fcntl qw(:mode)
ou use POSIX qw(:sys_stat_h)
exporter les constantes nécessaires, par ex. S_IXUSR
. Je trouve que c'est compliqué, même sujet aux erreurs car c'est le moment rare en Perl où vous rencontrez des mathématiques avec des nombres octaux et des opérateurs de bits.
A cet effet, File::chmod a la meilleure interface car il vous permet d'exprimer le changement
Quelle est la sortie de 'ls -ld/etc/cron.d'? – cdhowie