2013-03-03 8 views

Odpowiedz

14

Masz kilka opcji:

  • Wpisz touch -t STAMP -m file jeśli chcesz zmienić czas
  • Używaj cp --preserve=timestamps Jeśli kopiujesz pliki i chce zachować po raz
  • Korzystając touch -r ustawić czas na plik "referencyjny"
+1

To powie mi, jak zastosować znaczek do określonego pliku i skopiować plik i zachować znaczniki czasu. Ale to nie odpowiada na moje oryginalne pytanie o tym, jak skopiować znacznik czasu z jednego istniejącego pliku do innego istniejącego pliku ... – user2015453

+1

@ user2015453 Edytowałem swoją odpowiedź, pamiętałem o '-r' – cnicutar

0

Użyj touch; zawiera kilka opcjonalnych flag, które pozwalają ustawić takie atrybuty.

0

Jeśli używasz cp, użyj opcji -p aby zachować ve mod razy. cp -p

1

można uzyskać znacznik czasu pliku źródłowego za pomocą stat w formacie UNIX timestamp a następnie propagować go do pliku docelowego za pomocą touch -d

src_file=/foo/bar 
dst_file=/bar/baz 

touch -d @$(stat -c "%Y" "$src_file") "$dst_file" 

UWAGA: To będzie działać tylko z GNU coreutils które wspierają unix timestamp pomocą prefiksu @ z touch

1

Dla wygody później, umieścić następującą linię w pliku .bashrc:

cptimestamp() { 
    if [ -z $2 ] ; then 
    echo "usage: cptimestamp <sourcefile> <destfile>" 
    exit 
    fi 
    touch -d @$(stat -c "%Y" "$1") "$2" 
} 

Wykonaj "source ~/.bashrc" i jesteś gotowy do pracy. Jeśli wolisz zamiast tego skrypt, usuń pierwszą i ostatnią linię - następnie dodaj "#!/Bin/sh"

Powiązane problemy