cp -pu NTFS problem

Garry Trethewey garrytre at bigpond.com
Thu Dec 9 11:06:09 CST 2010


Hi all


Problem
cp -pu doesn't seem to work properly with timestamps from an ntfs partition.

Just to remind people,
-p     same as --preserve=mode,ownership,timestamps
-u, --update copy only when the SOURCE file is newer than the 
destination file or when the destination file is missing

Here's the gory details.

For a couple of years I've been doing
cp -puv -t $dest $source
from one ext3 partition to another, no problem.

But now I've copied my whole data disk to an NTFS partition on a USB 
portable hard drive. NTFS so I can use it at work.

I want to copy files from this NTFS partition to an ext3 destination 
with timestamps intact, so that next week when I do the same thing, I 
only copy new or changed files.



My code is
source=/media/data/aaa_S500_data/*    # the NTFS partition
dest='/home/garry/Desktop/junk'       # a ext3 partition
cp -puv -t $dest $source


Here is a demo source directory
garry at S500-lucid:~$ ls -l /media/data/aaa_S500_data/
total 64
-rwxrwxrwx 1 garry garry 38254 2010-12-02 06:20 elephantGreen.ico
-rwxrwxrwx 1 garry garry  5978 2010-10-25 17:27 elephant.ico
-rwxrwxrwx 1 garry garry    69 2010-11-30 05:55 readme.txt
-rwxrwxrwx 1 garry garry   766 2002-10-14 04:27 wdlogo.ico
-rwxrwxrwx 1 garry garry  5978 2010-10-25 17:27 wooly-mammoth.ico
garry at S500-lucid:~$


So into an empty directory, '/home/garry/Desktop/junk'  I copy
garry at S500-lucid:~$ cp -puv  -t '/home/garry/Desktop/junk' 
/media/data/aaa_S500_data/*
`/media/data/aaa_S500_data/elephantGreen.ico' -> 
`/home/garry/Desktop/junk/elephantGreen.ico'
`/media/data/aaa_S500_data/elephant.ico' -> 
`/home/garry/Desktop/junk/elephant.ico'
`/media/data/aaa_S500_data/readme.txt' -> 
`/home/garry/Desktop/junk/readme.txt'
`/media/data/aaa_S500_data/wdlogo.ico' -> 
`/home/garry/Desktop/junk/wdlogo.ico'
`/media/data/aaa_S500_data/wooly-mammoth.ico' -> 
`/home/garry/Desktop/junk/wooly-mammoth.ico'
garry at S500-lucid:~$

Then without changing any files in $source, and if I do
cp -puv  -t '/home/garry/Desktop/junk' /media/data/aaa_S500_data/*
again, nothing should be copied.

But the two files that were created / altered on the NTFS partition 
_AFTER_ it got created with gparted & partimage get copied again.

garry at S500-lucid:~$ cp -puv  -t '/home/garry/Desktop/junk' 
/media/data/aaa_S500_data/*
`/media/data/aaa_S500_data/elephantGreen.ico' -> 
`/home/garry/Desktop/junk/elephantGreen.ico'
`/media/data/aaa_S500_data/readme.txt' -> 
`/home/garry/Desktop/junk/readme.txt'
garry at S500-lucid:~$

and again

garry at S500-lucid:~$ cp -puv -t $dest $source
`/media/data/aaa_S500_data/elephantGreen.ico' -> 
`/home/garry/Desktop/junk/elephantGreen.ico'
`/media/data/aaa_S500_data/readme.txt' -> 
`/home/garry/Desktop/junk/readme.txt'


So it seems that cp -pu is recognising something that it needs to copy, 
but not what it's supposed to.

Have I conceptualised the problem correctly or is there something else 
going on that I'm missing?

Is there a fix or workaround?

regards

------------------------------------
Garry Trethewey
------------------------------------




More information about the linuxsa mailing list