Odpowiedzi:
cp -p
Zrób sztuczkę. W systemie Linux :
-p
taki sam jak--preserve=mode,ownership,timestamps
-p
Powoduje, że cp zachowuje następujące atrybuty każdego pliku źródłowego w kopii: czas modyfikacji, czas dostępu, flagi plików, tryb pliku, ACL, identyfikator użytkownika i identyfikator grupy, zgodnie z uprawnieniami.
A dla OS X :
-p
Powoduje, że cp zachowuje następujące atrybuty każdego pliku źródłowego w kopii: czas modyfikacji, czas dostępu, flagi plików, tryb pliku, identyfikator użytkownika i identyfikator grupy, zgodnie z uprawnieniami. Listy kontroli dostępu (ACL) i atrybuty rozszerzone (EA), w tym rozwidlenia zasobów, również zostaną zachowane.
cp -p
zachowuje nie tylko znacznik czasu, ale także tryb i własność, a na FreeBSD oprócz czasu modyfikacji zachowuje również »czas dostępu, flagi plików, tryb pliku, ACL, identyfikator użytkownika i identyfikator grupy, jak dozwolone na podstawie uprawnień. «oraz w OS X dodatkowo» Rozszerzone atrybuty, w tym rozwidlenia zasobów «.
W przypadku używania cp
z GNU Coreutils , aby zachować tylko znaczniki czasu, a nie atrybuty, takie jak identyfikator użytkownika, identyfikator grupy lub tryb pliku, istnieje długa ręka, --preserve
która pozwala jawnie określić listę atrybutów do zachowania.
cp --preserve=timestamps source destination
Pamiętaj jednak, że ta składnia prawdopodobnie nie jest obsługiwana w innych Uniksach. Alternatywą może być użycie --times
parametru, rsync
który powinien być dostępny w większości instalacji.
-p
nie jest poprawną odpowiedzią. -p
zachowuje również własność i tryb. Którego może nie chcieć .. i nie zadawano tego pytania.
Istnieją trzy razy w systemie plików Unix, czas dostępu (atime), czas modyfikacji (mtime) i czas zmiany i-węzła (ctime). Możesz na przykład zmienić czas dostępu i czas modyfikacji za pomocą programu dotykowego
kopia oryginału cp dotknij -r oryginał
Nie można jednak zmienić czasu zmiany i-węzła.
Ostatnio musiałem zrobić coś podobnego, ale zamiast tego użyć dowiązania symbolicznego. Aby utworzyć dowiązanie symboliczne i zachować oryginalny znacznik czasu:cp -ps src_file dst_symlink