使用 SCP 保留 ctime

Ell*_*t B 16 linux scp timestamp macos

如何在保留 ctime(修改时间)的同时使用 SCP 复制文件?

我的 Mac (OS 10.8) 上有一个文件夹,结果ls -lls -lc相同。

$ ls -l
total 0
drwxr-xr-x  9 elliott  staff  306 Mar 24 21:24 Day1b
$ ls -lc
total 0
drwxr-xr-x  9 elliott  staff  306 Mar 24 21:24 Day1b
Run Code Online (Sandbox Code Playgroud)

然后我将它复制到远程服务器(Linux),-p以保留时间戳。

$ scp -pr Day1b/ elliott@server.com:/
Run Code Online (Sandbox Code Playgroud)

现在在远程服务器上,ctime 更改为当前日期。

# ls -l
total 00
drwxr-xr-x  3 elliott elliott 4096 Mar 24 23:24 Day1b/
# ls -lc
total 0
drwxr-xr-x  3 elliott elliott 4096 Mar 28 14:08 Day1b/
Run Code Online (Sandbox Code Playgroud)

use*_*686 22

修改时间是mtime,不是ctime。scp -p已经保留了 mtime。

ctime 是inode 更改时间,每次以任何方式触及文件本身时都会更新 - 重命名、移动、chmodded 等。

通常没有办法保留它,因为操作系统没有为此提供任何功能,即使它提供了,设置 ctime 的行为本身也会导致 ctime 再次更新。

换句话说,ls -lc对于大多数目的是无用的,人们不必担心。