GNU/Linux >> Znalost Linux >  >> Linux

Linux – Proč Rsync na Linuxu nezachovává všechna časová razítka (čas vytvoření)?

Používám aktuální verzi rsync 3.2.3 a když spustím stat zobrazí mi tyto informace pro můj soubor.

stat '/test.txt'
File: /test.txt
Size: 0     Blocks: 0
IO Block: 4096   regular empty file
Device: fd00h/64768d    Inode: 11949
Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/liveuser)   Gid: ( 1000/liveuser)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2021-02-24 03:17:27.142676494 +0100
Modify: 2021-02-24 03:17:27.142676494 +0100
Change: 2021-02-24 03:17:27.142676494 +0100
Birth: 2021-02-24 03:17:27.142676494 +0100

Chci zachovat časová razítka Access, Modify a Birth. Použijte tento příkaz v rsync

rsync --atimes --times --crtimes 

nebo

rsync -UtN

Čas vytvoření problému (–crtimes) není v Linuxu zachován. Automaticky se nastaví na aktuální čas přenosu.

Jak mohu změnit chování v Linuxu? Chci zachovat všechna 3 časová razítka pro mé zkopírované soubory a složky.

Pokud totéž udělám na macOS, funguje to bez problémů.

UPRAVIT

Na macOS 10.13 a macOS 11 stačí nainstalovat homebrew a pak mohu získat nejnovější rsync 3.2.3. Ve výchozím nastavení má macOS integrovanou velmi zastaralou verzi rsync 2.6.9.

  1. Otevřete Terminál

  2. Nainstalujte Homebrew

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

  3. Nainstalujte rsync

    brew install rsync

Přijatá odpověď:

Čas vytvoření problému (–crtimes) není v Linuxu zachován. Automaticky se nastaví na aktuální čas přenosu.

I když můžete perfektně dotazovat crtime, v Linuxu bohužel neexistuje žádné API, které by to nastavilo:https://linux.die.net/man/2/utimes.

Jak mohu změnit chování v Linuxu? Chci zachovat všechna 3 časová razítka pro mé zkopírované soubory a složky.

Zkontrolujte tuto otázku:Kopírování nebo obnova crtime pro soubory/adresáře na souborovém systému ext4fs


Linux
  1. Linux – Proč Apt Autoremove neodstraní všechny staré balíčky jádra najednou?

  2. Proč je Bash všude (ve většině, ne-li ve všech distribucích Linuxu)?

  3. Proč systém Windows nerozpozná soubory uvnitř oddílů Linux?

  1. Proč výstup některých linuxových programů nejde ani do STDOUT, ani do STDERR?

  2. Proč yum updateinfo nezobrazuje všechny aktualizace?

  3. Proč tento regulární výraz nefunguje na linuxu?

  1. Proč se rsync nedaří zkopírovat soubory z /sys v Linuxu?

  2. proč je timer_t definován v time.h v Linuxu, ale ne v OS X

  3. Proč find -mtime nefunguje podle očekávání u souborů s různými časovými pásmy?