J'ai un répertoire source sur une machine avec un tas de fichiers, tous avec les mêmes autorisations, que je veux copier dans un autre répertoire, qui est monté via 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
Le répertoire cible est monté via SMB et j'essaie de copier l'ensemble de fichiers en une seule fois.
[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
Notez que les heures et les autorisations sur les deux premiers fichiers sont les mêmes que dans le répertoire source, mais diffèrent pour les fichiers restants.
Donc, il semble que je puisse copier certains fichiers et conserver leurs autorisations et leurs heures, mais pas avec d'autres fichiers , même si tous les fichiers source proviennent du même endroit et ont les mêmes autorisations et (plus ou moins) fois, et je ' m les copier tous dans le même répertoire en même temps - et donc avec le même umask, etc.
Alors, pourquoi puis-je conserver les heures pour certains, mais pas pour tous les fichiers?
Je serais heureux de fournir plus de détails (umask, version Linux, smb.conf, etc.), sauf que je ne comprends pas comment ces détails pourraient expliquer ce que je vois - car ils devraient être constants ici.
Réponses:
Sous Unix, les horodatages ne peuvent pas être conservés sur les fichiers dont l'utilisateur n'est pas propriétaire.
C'est pourquoi la commande suivante échoue si
file1
etfile2
appartiennent à différents utilisateurs au cas où ilfile2
existe déjà:Il semble que ce soit votre cas, car les fichiers source appartiennent à
adminrig
et les fichiers cible appartiennent àtmark
.Je ne sais pas s'il existe une solution de contournement car le forçage avec
-f
ne résout pas le problème.Si vous le pouvez, essayez de changer la propriété des fichiers cibles ...
la source
cp -a
place .