Как проверить, что file2 является более новым, чем file1 в ударе?

Как я могу проверить это 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
51
задан 13.01.2012, 10:54

5 ответов

Найденный им здесь

for f in /abcd/xyz* do
   [ "$f" -nt /abcd/test.txt ] && echo "file f$ found" done
51
ответ дан 07.12.2019, 08:28
if [[ FILE1 -nt FILE2 ]]; then
  echo FILE1 is newer than FILE2
fi

Взятый от 'теста человека'. Выборка:

FILE1 -nt FILE2
  FILE1 is newer (modification date) than FILE2
38
ответ дан 07.12.2019, 08:28

Другой способ сделать это:

find -name file2 -newer file1

возвратит пустой указатель, если file2 будет более старым или тот же возраст как file1. Это возвратит имя (и каталог) file2, если это будет более новым.

Знайте, что Linux не отслеживает то, когда файлы были созданы. Эти тесты будут для новой даты и времени модификации.

7
ответ дан 07.12.2019, 08:28

Если Вы хотите более подробную информацию, можно использовать 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
2
ответ дан 07.12.2019, 08:28

Согласно этой ссылке, 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 строк в порядке, который первый файл изменил сначала, и Вы видите, который это

0
ответ дан 07.12.2019, 08:28

Теги

Похожие вопросы