Как я могу проверить это file2
был в последний раз изменен после file1
?
В этом примере, perl
был изменен позже, чем stack
. Существует ли команда удар или Linux, которая может сравнить эти файлы на основе времени изменения?
-rw-r--r-- 1 root root 1577 Sep 7 22:55 stack
-rwxr-xr-x 1 root root 626 Sep 7 23:10 perl
if [[ FILE1 -nt FILE2 ]]; then
echo FILE1 is newer than FILE2
fi
Взятый от 'теста человека'. Выборка:
FILE1 -nt FILE2
FILE1 is newer (modification date) than FILE2
Другой способ сделать это:
find -name file2 -newer file1
возвратит пустой указатель, если file2 будет более старым или тот же возраст как file1. Это возвратит имя (и каталог) file2, если это будет более новым.
Знайте, что Linux не отслеживает то, когда файлы были созданы. Эти тесты будут для новой даты и времени модификации.
Если Вы хотите более подробную информацию, можно использовать stat
команда
<tbielawa>@(fridge)[~/SuperUser] 03:15:10
$ touch firstFile
<tbielawa>@(fridge)[~/SuperUser] 03:15:24
$ touch secondFile
<tbielawa>@(fridge)[~/SuperUser] 03:15:45
$ stat firstFile
File: `firstFile'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 805h/2053d Inode: 151528 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/tbielawa) Gid: ( 500/tbielawa)
Access: 2010-09-14 03:15:24.938721003 -0400
Modify: 2010-09-14 03:15:24.938721003 -0400
Change: 2010-09-14 03:15:24.938721003 -0400
<tbielawa>@(fridge)[~/SuperUser] 03:15:48
$ stat secondFile
File: `secondFile'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 805h/2053d Inode: 151529 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 500/tbielawa) Gid: ( 500/tbielawa)
Access: 2010-09-14 03:15:45.074722792 -0400
Modify: 2010-09-14 03:15:45.074722792 -0400
Change: 2010-09-14 03:15:45.074722792 -0400
Согласно этой ссылке, Unix не хранит дату создания. http://www.issociate.de/board/post/302628/How_to_check_file_creation_date.html
Но действительно хранит последний доступ.
для последнего доступа
ls -t # displays in order of date. So the first one is the
ls отображает каждый файл на новой строке.
так ls-t отображает последний файл на первой строке и т.д.
Можно использовать sed для выбора первой строки.
ls-t php.exe php.ini | sed-n '1p' php.ini
мог сделать -lt
хотя Вы будете видеть это, если Вы не укажете файлов.. и это делает каталог.. затем это дает общее количество на первой строке, таким образом, Вы выбираете вторую строку как $ls -lt | sed -n '2p'
Хороший был бы
ls -t | head -n 1
или
ls -lt | head
отображает первые 10 строк в порядке, который первый файл изменил сначала, и Вы видите, который это