Commande Unix (autre que 'stat' et 'ls') pour obtenir la date de modification du fichier sans analyser
Je suis en train d'écrire un script shell dans lequel je dois trouver la date de dernière modification d'un fichier.
Stat
commande n'est pas disponible dans mon environnement.
Donc je suis en utilisant 'ls'
comme ci-dessous pour obtenir le résultat désiré.
ls -l filename | awk '{print $6 $7 $8}'
Mais j'ai lu dans de nombreux forums que analyse ls
est généralement considéré comme une mauvaise pratique. Alors que (probablement) fonctionne très bien la plupart du temps, il n'est pas garanti pour fonctionner à chaque fois.
Est-il un autre moyen pour obtenir la date de modification de fichier dans un script shell.
source d'informationauteur AnonGeek
Vous devez vous connecter pour publier un commentaire.
Comment sur l'utilisation de l'
find
commande?par exemple,
Cette chaîne de format donne de sortie comme ceci:
2012-06-13 00:05
.La trouver l'homme page montre les directives de mise en forme que vous pouvez utiliser avec
printf
pour adapter la sortie à ce que vous avez besoin/envie. Section-printf format
contient tous les détails.Comparer
ls
sortie defind
:Bien sûr, vous pouvez écrire des scripts dans un grand nombre de langues telles un Python ou Perl etc, pour obtenir la même information, mais demandant un "commande unix" sonnait comme si vous étiez à la recherche d'un "built-in" commande shell.
MODIFIER:
Vous pouvez également inovke Python à partir de la ligne de commande comme ceci:
ou si elle est combinée avec d'autres commandes shell:
fois de retour:
Wed Jun 13 00:05:29 2012
Vous avez perl?
Si oui, vous pouvez utiliser ses
stat
fonction permettant d'obtenir le mtime (et autres informations) sur un fichier nommé.Voici un petit script qui prend une liste de fichiers et affiche la date de modification pour chacun d'eux:
Exemple de sortie:
La
File::stat
module remplace lestat
appel avec une version plus conviviale:en fonction de votre OS, vous pouvez simplement utiliser
La seule version d'unix, ce qui ne fonctionne pas sur Mac OS, où, selon l'homme de fichiers, l'option-r est :
au lieu de