Dlaczego touch -t zastępuje czas modyfikacji rokiem, w którym jest?

3

Kiedy używam dotyku z opcją -t, aby zmienić czas modyfikacji pliku, na przykład:

> touch -t 201702160701 ABC.script

Następnie plik, który pojawił się jako taki wcześniej:

-rwxrwxrwx  1 timruss  staff    0 Oct 21 23:12 ABC.script

Pojawi się teraz jako:

-rwxrwxrwx  1 timruss  staff    0 Feb 16  2017 ABC.script

Dlaczego?

Shaun Dashjian
źródło
2
Czego byś się spodziewał?
nohillside
Dotknij, aby ustawić czas, w którym „powiesz” edytowałeś plik ....... przydatne w rozmowach z szefem ... nie ja: zawsze, uczciwie ...
Solar Mike

Odpowiedzi:

8

To, co widzisz, to normalne i oczekiwane zachowanie.

Ze strony podręcznika dla ls:

Jeśli czas modyfikacji pliku jest dłuższy niż 6 miesięcy w przeszłości lub w przyszłości, wówczas w polu godziny i minuty wyświetlany jest rok ostatniej modyfikacji.

Aby zobaczyć dane wyjściowe zawierające miesiąc, dzień, godzinę, minutę, sekundę i rok na plikach należących do powyższej kategorii, użyj -T opcja .

-T Gdy używany z -l (mała litera „ell”), wyświetla pełną informację o czasie dla pliku, w tym miesiąc, dzień, godzinę, minutę, sekundę i rok.

Przykład:

ls -lT ABC.script
-rwxrwxrwx  1 timruss  staff    0 Feb 16 07:01:00 2017 ABC.script
user3439894
źródło
Tak, tak mówi strona podręcznika. To powiedziawszy, nawet jeśli podam datę w oknie 6 miesięcy, widzę to samo zachowanie. na przykład: -rwxrwxrwx 1 personel timruss 0 Paź 25 2017 ABC.script
Shaun Dashjian