cp -p将保留某些文件的时间,但不是全部?


9

我在一台机器上有一个源目录,该目录中有一堆文件,所有文件都具有相同的权限,我想复制到另一个通过SMB挂载的目录。

[tmark@dexter JR09141045 roche_454_transfer]$ ls -l /source_dir
total 71348
-rwxrwxrwx 1 adminrig lifelabs 19768377 Mar 25 23:29 1.TCA.454Reads.fna
-rwxrwxrwx 1 adminrig lifelabs 53093396 Mar 25 23:29 1.TCA.454Reads.qual
-rwxrwxrwx 1 adminrig lifelabs     1035 Mar 25 23:29 454AllControlMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs     2657 Mar 25 23:29 454AllControlMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs     4607 Mar 25 23:29 454BaseCallerMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs    14518 Mar 25 23:29 454BaseCallerMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs      351 Mar 25 23:23 454DataProcessingDir.xml
-rwxrwxrwx 1 adminrig lifelabs      702 Mar 25 23:29 454QualityFilterMetrics.csv
-rwxrwxrwx 1 adminrig lifelabs     1609 Mar 25 23:29 454QualityFilterMetrics.txt
-rwxrwxrwx 1 adminrig lifelabs    13496 Mar 25 23:29 454RuntimeMetricsAll.csv
-rwxrwxrwx 1 adminrig lifelabs    26967 Mar 25 23:29 454RuntimeMetricsAll.txt
-rwxrwxrwx 1 adminrig lifelabs     1675 Mar 25 14:48 dataRunParams.xml
-rwxrwxrwx 1 adminrig lifelabs     7134 Mar 25 23:29 gsRunProcessor.log

目标目录是通过SMB挂载的,我正在尝试一次复制所有文件集。

[tmark@dexter JR09141045 target_dir]$ cd /target_dir
[tmark@dexter JR09141045 target_dir]$ cp -p /source_dir/* ./
cp: preserving times for `./454AllControlMetrics.csv': Operation not permitted
cp: preserving times for `./454AllControlMetrics.txt': Operation not permitted
cp: preserving times for `./454BaseCallerMetrics.csv': Operation not permitted
cp: preserving times for `./454BaseCallerMetrics.txt': Operation not permitted
cp: preserving times for `./454DataProcessingDir.xml': Operation not permitted
cp: preserving times for `./454QualityFilterMetrics.csv': Operation not permitted
cp: preserving times for `./454QualityFilterMetrics.txt': Operation not permitted
cp: preserving times for `./454RuntimeMetricsAll.csv': Operation not permitted
cp: preserving times for `./454RuntimeMetricsAll.txt': Operation not permitted
cp: preserving times for `./dataRunParams.xml': Operation not permitted
cp: preserving times for `./gsRunProcessor.log': Operation not permitted

[tmark@dexter JR09141045 target_dir]$ ls -l
total 71264

-rwxrwxrwx 1 tmark 1008 19768377 Mar 25 23:29 1.TCA.454Reads.fna
-rwxrwxrwx 1 tmark 1008 53093396 Mar 25 23:29 1.TCA.454Reads.qual
-rwxr-xr-x 1 tmark 1008     1035 Apr  1  2015 454AllControlMetrics.csv
-rwxr-xr-x 1 tmark 1008     2657 Apr  1  2015 454AllControlMetrics.txt
-rwxr-xr-x 1 tmark 1008     4607 Apr  1  2015 454BaseCallerMetrics.csv
-rwxr-xr-x 1 tmark 1008    14518 Apr  1  2015 454BaseCallerMetrics.txt
-rwxr-xr-x 1 tmark 1008      351 Apr  1  2015 454DataProcessingDir.xml
-rwxr-xr-x 1 tmark 1008      702 Apr  1  2015 454QualityFilterMetrics.csv
-rwxr-xr-x 1 tmark 1008     1609 Apr  1  2015 454QualityFilterMetrics.txt
-rwxr-xr-x 1 tmark 1008    13496 Apr  1  2015 454RuntimeMetricsAll.csv
-rwxr-xr-x 1 tmark 1008    26967 Apr  1  2015 454RuntimeMetricsAll.txt
-rwxr-xr-x 1 tmark 1008     1675 Apr  1  2015 dataRunParams.xml
-rwxr-xr-x 1 tmark 1008     7134 Apr  1  2015 gsRunProcessor.log

请注意,前两个文件的时间和权限与源目录中的时间和权限相同,但其余文件的时间和权限不同。

因此,即使所有源文件都来自同一位置并且具有相同的权限(或多或少)次,似乎我可以复制一些文件并保留其权限和时间,但不能与其他文件一起使用,并且m将它们全部同时复制到同一目录-因此使用相同的umask等。

那么,为什么我可以保留一些而非全部文件的时间呢?

我很乐意提供更多详细信息(umask,Linux版本,smb.conf等),除了我不明白这些细节中的任何一个可以解释我所看到的东西-因为它们在这里应该是不变的。


您提到了SMB。这是Windows服务器上的CIFS共享吗?来自NetApp?这也可能很重要。例如,NetApp具有不同的共享/混合模式。实际上,取决于您共享的内容,有很多可能性。以及您在客户端上使用的内核版本和安装选项。
亚伦

您可以共享此samba的安装详细信息吗?如何安装呢?只是想检查您在安装时是否使用了“ noatime”
PKumar,2015年

最好使用cp的rsync insead。
PKumar,2015年

Answers:


8

在Unix上,不能在用户不拥有的文件上保留时间戳。

这就是为什么如果下面的命令失败file1,并file2在情况下由不同用户拥有file2已经存在:

cp -p file1 file2

似乎是您的情况,因为源文件由拥有adminrig,目标文件由拥有tmark

不知道是否有解决方法,因为强制使用-f不能解决问题。

如果可以,请尝试更改目标文件的所有权...


2
谢谢krisFR。然而,它们的源文件复制具有正确的权限和时间戳,拥有相同的所有权作为产生错误的人。实际上,所有源文件都具有相同的表观权限,并且它们都由adminrig拥有,因此似乎所有权并不能完全解释我所看到的内容-否则,任何文件都不应复制带有权限和时间戳的文件。
tmark

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.