Chociaż ctime nie technicznie jest czas powstania, to jest dość często.
Ponieważ ctime nie podlega zmianom w treści pliku, zwykle jest aktualizowany tylko po utworzeniu pliku. I tak - słyszę, jak wszyscy krzycząście - jest również aktualizowany, jeśli zmienisz uprawnienia dostępu lub prawo własności ... ale generalnie jest to coś, co zostało zrobione raz, zwykle w tym samym czasie, gdy umieścisz tam plik.
Osobiście zawsze używam mtime na wszystko i wyobrażam sobie, że tego właśnie chcesz. Ale w każdym razie ... tutaj jest remake "nieatrakcyjnego" basha Gussa w łatwej w użyciu funkcji.
#!/bin/bash
function age() {
local filename=$1
local changed=`stat -c %Y "$filename"`
local now=`date +%s`
local elapsed
let elapsed=now-changed
echo $elapsed
}
file="/"
echo The age of $file is $(age "$file") seconds.
możesz upuścić "test" i backticks. Jest to analogiczne do "if (test == true)" vs "if (test)" – guns
@ guns: no you can not. – kmkaplan
Masz rację; Przypuszczam, że pomyślałem, że 'find' zwróciło się niezerowo, gdy nie znaleziono pasujących elementów. – guns