Comment puis-je vérifier que cela a file2
été modifié pour la dernière fois file1
?
Dans cet exemple, a perl
été modifié plus récemment que stack
. Existe-t-il une commande bash ou Linux permettant de comparer ces fichiers en fonction de l'heure de modification?
-rw-r--r-- 1 root root 1577 Sep 7 22:55 stack
-rwxr-xr-x 1 root root 626 Sep 7 23:10 perl
-ot
est "plus vieux que".Tiré de 'l' homme test '. Extrait:
la source
Une autre façon de faire ceci:
retournera null si file2 est plus vieux ou a le même âge que file1. Il renverra le nom (et le répertoire) de file2 s'il est plus récent.
Sachez que Linux ne garde pas trace du moment où les fichiers ont été créés. Ces tests porteront sur la date et l'heure de la modification la plus récente.
la source
ctime
n'est pas le moment de la création. Il s'agit de l'heure de changement d'inode et est mise à jour lorsque les attributs du fichier, tels que le propriétaire ou les autorisations, sont modifiés ou que vous modifiez le fichier. Certains systèmes de fichiers prennent en charge l’heure de naissance, mais pas le noyau. Stat montre une heure de naissance vide. Voir unix.stackexchange.com/a/91200 Notez que OS X prend en charge l'heure de naissancestat -f %SB filename
debugfs
pour voir l'heure de création (naissance) sous Linux.Si vous souhaitez des informations plus détaillées, vous pouvez utiliser la
stat
commandela source
Si le résultat est> 0, le premier fichier est plus récent. (Plus récent en termes de dernière modification-, pas de création-heure, qui est stocké sur Linux).
la source
Selon ce lien, Unix ne stocke pas la date de création. http://www.issociate.de/board/post/302628/How_to_check_file_creation_date.html
Mais stocke le dernier accès.
pour le dernier accès
ls affiche chaque fichier sur une nouvelle ligne.
alors ls -t affiche le dernier fichier sur la première ligne, etc.
Vous pouvez utiliser sed pour choisir la première ligne.
ls -t php.exe php.ini | sed -n '1p' php.ini
pourrait faire
-lt
si vous verrez que si vous ne spécifiez pas de fichiers .. et il ne le répertoire .. il donne le total sur la première ligne, de sorte que vous choisissez la deuxième ligne comme$ls -lt | sed -n '2p'
Un bon serait
ou
affiche les 10 premières lignes du premier fichier de la commande modifié en premier et vous pouvez voir lequel il est
la source
-t
est le temps de modification;-u
est le temps d'accèsVoici un petit script, j'ai fait:
la source