Як зазначає @TomMcKenzie в коментарі до іншої відповіді, date -r 123456789
можливо, це більш поширене (тобто більш широко впроваджене) просте рішення у часи, що даються секундами з часів Unix Epoch, але, на жаль, не існує універсального гарантованого портативного рішення.
-d
Варіант на багатьох типах систем означає щось зовсім інше , ніж GNU Дейта --date
розширення. На жаль, Дата GNU не інтерпретує -r
те саме, що й інші реалізації. Тож, на жаль, ви повинні знати, яку версію date
ви використовуєте, і багато старих date
команд Unix не підтримують жоден варіант.
Ще гірше, POSIX date
не розпізнає ні, -d
ні, -r
і не забезпечує стандартного способу в будь-якій команді взагалі (про що я знаю) для форматування часу Unix з командного рядка (оскільки POSIX Awk також не вистачає strftime()
). (Ви не можете використовувати, touch -t
і ls
тому що перший не сприймає час, вказаний як секунди з часів Unix Epoch.)
Зауважте, що тепер у One True Awk, доступного безпосередньо від Брайана Керніган, є strftime()
вбудована функція, а також systime()
функція повернення поточного часу за секунди після Unix Epoch), тому, можливо, рішення Awk є найбільш портативним.