LINUX.IE, website of the Irish Linux Users' Group
Tux rules!

   
Home
New Users
Articles
Download
Projects
Community
Vendors

  Print Version
Email to...
 
Archives:


planetILUG

Recent News

News Archive


Join the
ILUG
on FaceBook


Join the
ILUG
on LinkedIn


Join the
ILUG SETI
Group



















 
 :: Mailing Lists

[ILUG] Hard link copying peculiarity

[ILUG] Hard link copying peculiarity

Niall O Broin niall at linux.ie
Fri Oct 25 12:25:06 IST 2002


I had 43GB of JPEGs to copy from one disk to another. Each file has two
directory entries i.e. two hardlinks which I want preserved (because I didn't
want to copy 86GB of data to the destination disk). For bulk copying of
data, I tend to do

find * | cpio -pmd destdir

Another option is to use cp -a (I'm using find | cpio for years, something I
started to do on Unices which didn't have a -a option to cp) and another is

tar cf - * | (cd destdir; tar xfBp -)

which I used to use before I started using find | cpio.

However, both the cp and cpio methods failed for me here - they didn't
maintain the symlinks and filled the destination disk. What's curious is
that I knew this was an issue and I did a test run without about 1GB of data
and that worked fine - the files were copied c/w hard links.

I was about to try using the tar method when Paul Kelly suggested using
rsync (a great program, and one I use a lot for syncing remote and local
files, and also for syncing two local disks - but I don't tend to think of
it for simple copying) and a quick perusal of the manual showed that it had
a specific command line option (-H) to preserve hardlinks. 

To cut a long story short, rsync did the business. The whole thing however
leaves a sour taste in my mouth WRT cp and cpio though. I find it very
strange and disturbing that these programs will work in two different ways
depending on how much data is being copied.

OK - just had a quick look at the cpio source - it maintains a hash of
filenames and inode numbers. I'm no algorithm expert but I suspect that
perhaps this hash implementation falls over when presented with ~100000
entries.




Niall



More information about the ILUG mailing list
Read this without the formatting.
                                                                                                    

 

Hosted by HEAnet


Maintained by the ILUG website team. The aim of Linux.ie is to support and help commercial and private users of Linux in Ireland. You can display ILUG news in your own webpages, read backend information to find out how. Networking services kindly provided by HEAnet, server kindly donated by Dell. Linux is a trademark of Linus Torvalds, used with permission. No penguins were harmed in the production or maintenance of this highly praised website. Looking for the Indian Linux Users' Group? Try here. If you've read all this and aren't a lawyer: you should be!
RSS Version
Powered by Dell