pracuję na małej skrzynki referencyjnej podobny skrypt bash, jak mogę porównać daty 2 pliki i zastąpić starą (ów) z nową bez użycia rsync jest jakiś prosty sposób na przetworzenie tego? Czy mogę SHA1 pomóc mi poznać nowszą?porównać datę bash pliku na
Odpowiedz
można porównać czasy modyfikacji plików z test
korzystając -nt
(nowsze niż) i -ot
(starsze niż) Operatorzy:
if [ "$file1" -ot "$file2" ]; then
cp -f "$file2" "$file1"
fi
To niesamowite :))) nigdy nie myślał, że proste porównanie może zrobić pracę, ponieważ jestem nowy w centOS :) dziękuję u :) –
-nt wydaje się oznaczać nowszych niż w tym samym wieku. –
@ JoeC Testowałem i jeśli ten sam wiek wrócił 1 (po 'touch -r ...') –
jak o
stat file|awk -F': ' '/Modify: /{print $2}'
Ten pomógł mi z tym, co próbowałem osiągnąć. Teraz, jak porównać te czasy? Używam odpowiedzi znalezionych tutaj: http://stackoverflow.com/questions/8116503/how-to-compare-two-datetime-strings-and-return-difference-in-hs-bash-shell Perfect! – harperville
Albo nawet krótsze i ładniejsze, wygląd pod adresem man stat
:
stat -c %y file
Oto rozwiązanie POSIX:
find -name file2 -newer file1
To naprawdę zależy od tego, co rozumiesz przez "datę pliku". Prawdopodobnie odnosisz się do 'mtime', ale specyfika jest dobra. –
@WilliamPursell, ostatni modyfikator to znaczy –