To wydaje się być klasycznym przypadkiem niestandardowych funkcji na różnych platformach.Najlepszy sposób na uzyskanie pliku Czas modyfikacji w sekundach
Po prostu chcę uniwersalnej (lub przynajmniej szeroko) obsługiwanej metody uzyskiwania zmodyfikowanego czasu pliku jako znacznika czasu unixowego w sekundach.
Teraz wiem o różnych sposobach zrobienia tego z stat
, ale większość z nich jest specyficzna dla platformy; na przykład stat -c %Y $file
działa dla niektórych, ale nie działa w systemie OS X (i prawdopodobnie innych systemach FreeBSD), który zamiast tego używa stat -f %m $file
.
Podobnie, niektóre platformy obsługują date -r $file +%s
jednak OS X/FreeBSD ponownie nie jako opcja -r
wydaje się być po prostu alternatywny do korzystania +%s
uzyskania uniksowego znacznika czasu, zamiast opcji pliku odniesienia, jak na innych platformach.
Inną alternatywą, którą znam jest użycie opcji find
z opcją , ale znowu nie jest ona szeroko obsługiwana. Ostatnią znaną mi metodą jest analizowanie ls
, co oprócz tego, że jest nieprzyjemną rzeczą do zrobienia, nie jest czymś, w co moim zdaniem może (lub przynajmniej powinienem) polegać.
Czy istnieje zatem bardziej kompatybilna metoda uzyskania zmodyfikowanego czasu pliku? Obecnie wrzucam do skryptu różne odmiany stat
i uruchamiam je, dopóki nie wyjdzie ze stanem zerowym, ale jest to dalekie od ideału, nawet jeśli buforowałem pomyślne polecenie, aby uruchomić je w przyszłości.
nie mogę nic pakiet; celem jest posiadanie prostego skryptu powłoki, który powinien działać na prawie każdym unixowym systemie operacyjnym. Problem polega na tym, że muszę uwzględnić środowiska takie jak NAS, które mogą nie zawierać Pythona lub Perla. Czy naprawdę nie ma lepszego sposobu na zrobienie tego w powłoce? – Haravikk