J'utilise stat -f %m .bashrc
Pour obtenir une durée de modification de mon .CASHRC sur OSX. Mais quand j'exécute la même commande sur Ubuntu, cela crache une erreur:
stat: cannot read file system information for %m': No such file or directory
y a-t-il un moyen compatible pour y parvenir?
Ubuntu utilise le GNU corutils stat
, osex utilise la variante BSD. Donc sur Ubuntu, la commande est un peu différente:
stat -c %Y .bashrc
De man stat
:
-c --format=FORMAT use the specified FORMAT instead of the default; output a new‐ line after each use of FORMAT
et:
%Y time of last data modification, seconds since Epoch
Si vous voulez une façon portable de gérer ces systèmes d'exploitation, alors il y a plusieurs façons de le faire. Je pense que je définirais une variable une fois sur les paramètres appropriés:
if uname | grep -q "Darwin"; then
mod_time_fmt="-f %m"
else
mod_time_fmt="-c %Y"
fi
Puis utilisez cette valeur dans la commande stat
où vous avez besoin:
stat $mod_time_fmt .bashrc
Cela dépend de ce que vous entendez par "ceci". Si vous demandez s'il existe un moyen portable d'obtenir un fichier mtime
avec stat(1)
, alors non, il n'y a pas. BSD stat(1)
est différente de Linux stat(1)
.
Si vous demandez s'il existe une façon portable d'obtenir un fichier mtime
, alors oui, vous pouvez le faire avec Perl(1)
:
Perl -e 'print +(stat $ARGV[0])[9], "\n"' file