Как сравнить временную метку двух файлов?
Я пробовал это, но это не работает:
file1time=`stat -c %Y fil1.txt`
file2time=`stat -c %Y file2.txt`
if[$file1time -gt $file2time];
then
doSomething
fi
Я распечатал обе метки времени по порядку, и это дает мне
1273143480
1254144394
./script.sh: line 13: [1273143480: command not found
Так что в принципе, если сравнение не работает, я думаю. Или, если есть какой-то другой способ, отличный от того, что я делаю, пожалуйста, дайте мне знать. Что я должен изменить?
linux
bash
comparison
timestamp
newcoderintown
источник
источник
Ответы:
Операторы для сравнения меток времени:
Мнемоника проста: «новее, чем» и «старше, чем».
источник
Это из-за некоторых пропущенных мест.
[
это команда, поэтому она должна иметь пробелы вокруг нее, а]
это специальный параметр, сообщающий ей, где заканчивается ее строка команды. Итак, ваша тестовая строка должна выглядеть так:источник
[
тестовая команда - см. раздел «УСЛОВНЫЕ ВЫРАЖЕНИЯ» справочнойbash
страницы. Существует также автономный исполняемый файл в/usr/bin/test
и/usr/bin/[
, но если вы используете bash и не используете полный путь, вы используете встроенную оболочку.if
это не магия Он пытается запустить переданную ему команду и проверяет, имеет ли он нулевой статус выхода. Он также плохо обрабатывает несуществующие аргументы, поэтому вы должны заключать в кавычки переменные, используемые в нем.источник
источник