У меня есть исходный каталог на машине с кучей файлов с одинаковыми разрешениями, которые я хочу скопировать в другой каталог, смонтированный через 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
Обратите внимание, что время и разрешения для первых двух файлов такие же, как в исходном каталоге, но разные для остальных файлов.
Итак, похоже, я могу скопировать некоторые файлы и сохранить их разрешения и время, но не с другими файлами, хотя все исходные файлы берутся из одного места и имеют одинаковые разрешения и (более или менее) время, и я копирую их все в один и тот же каталог одновременно - и, следовательно, с одинаковой umask и т. д.
Итак, почему я могу сохранить время для некоторых, но не для всех файлов?
Я был бы рад предоставить более подробную информацию (umask, версия для Linux, smb.conf и т. Д.), За исключением того, что я не могу понять, как какие-либо из этих деталей могут объяснить то, что я вижу - поскольку они должны быть здесь постоянными.
В Unix временные метки не могут быть сохранены в файлах, которыми пользователь не владеет.
Вот почему следующая команда не работает, если file1
и file2
принадлежат разным пользователям в случае, если file2
уже существует:
cp -p file1 file2
Кажется, это ваш случай, потому что исходные файлы принадлежат adminrig
а целевые файлы принадлежат tmark
.
Не уверен, есть ли обходной путь, например, принуждение -f
не решает проблему.
Если можете, попробуйте сменить владельца целевых файлов ...