Jak mogę sprawdzić, czy file2
po ostatniej modyfikacji file1
?
W tym przykładzie perl
został zmodyfikowany niedawno niż stack
. Czy istnieje polecenie bash lub Linux, które może porównywać te pliki na podstawie czasu modyfikacji?
-rw-r--r-- 1 root root 1577 Sep 7 22:55 stack
-rwxr-xr-x 1 root root 626 Sep 7 23:10 perl
-ot
Jest także „starszy niż”.Zaczerpnięte z „ testu na człowieku ”. Fragment:
źródło
Inny sposób to zrobić:
zwróci null, jeśli plik2 jest starszy lub w tym samym wieku co plik1. Zwróci nazwę (i katalog) pliku2, jeśli jest nowszy.
Pamiętaj, że Linux nie śledzi, kiedy pliki zostały utworzone. Testy będą dotyczyły ostatniej daty i godziny modyfikacji.
źródło
ctime
to nie czas tworzenia. Jest to czas zmiany i-węzła i jest aktualizowany, gdy atrybuty pliku, takie jak właściciel lub uprawnienia lub zmienione, lub podczas modyfikacji pliku. Niektóre systemy plików obsługują czas narodzin, ale jądro nie. Statystyki pokazują pusty czas urodzenia. Zobacz unix.stackexchange.com/a/91200 Należy pamiętać, że OS X obsługuje poródstat -f %SB filename
debugfs
wyświetlania (narodzin) w systemie Linux.Jeśli chcesz uzyskać bardziej szczegółowe informacje, możesz użyć
stat
poleceniaźródło
Jeśli wynik to> 0, pierwszy plik jest nowszy. (Nowsze pod względem czasu ostatniej modyfikacji, a nie czasu tworzenia, który jest przechowywany w systemie Linux).
źródło
Według tego linku unix nie przechowuje daty utworzenia. http://www.issociate.de/board/post/302628/How_to_check_file_creation_date.html
Ale przechowuje ostatni dostęp.
dla ostatniego dostępu
ls wyświetla każdy plik w nowym wierszu.
więc ls -t wyświetla najnowszy plik w pierwszym wierszu itp.
Możesz użyć sed, aby wybrać pierwszą linię.
ls -t php.exe php.ini | sed -n '1p' php.ini
mógłbym to zrobić,
-lt
ale zobaczysz, że jeśli nie określisz żadnych plików .. i robi to katalog ... to daje sumę w pierwszym wierszu, więc wybierasz drugi wiersz jak$ls -lt | sed -n '2p'
Byłby dobry
lub
wyświetla pierwsze 10 wierszy w kolejności najpierw zmodyfikowany plik i możesz zobaczyć, który to plik
źródło
-t
to czas modyfikacji;-u
jest czas dostępuOto mały skrypt, zrobiłem:
źródło