14

If I execute the following command:

cp -R /myfiles /mydestination

If myfiles contains several sub-directories and files, in what order will they be copied?

For example, directories might be named 0123a, 9993c, myfolder, xfolder.

They are not copied in alphabetical order OR in date order OR in the order they appear when using a standard ls command as far as I can tell, so what actually does determine the order?

Edit: I am trying to determine the order that the cp command uses in order to determine how far along my copy command made it before it stopped. For example, I was hoping to be able to determine it copied 3 of the 4 directories successfully.

2
  • Remember that the ls command by default sorts the directory contents before displaying them. What you see printed by ls is not the actual directory enumeration order.
    – JdeBP
    Jun 26, 2011 at 14:09
  • 1
    Use ls -U to get the unsorted directory order. This should be the order that cp uses. If you need more control over progress, order, etc., perhaps cp is not the tool for the job. May 11, 2012 at 8:16

2 Answers 2

2

The order that they're stored/returned in the filesystem. For "unsorted" filesystems this would generally be their creation order. For "sorted" filesystems (e.g. ext3/4 with dir_index) this would be the order used in the filesystem index.

1
  • For unindexed filesystem formats it's a little more complex than that, if one has been deleting directory entries as well as creating them. (-:
    – JdeBP
    Jun 26, 2011 at 14:05
15

We had EXACTLY the same problem. We copy large amounts of data to and from USB drives and it is annoying to be unable to tell how far through the process it has completed. We instead started using RSYNC.

Instead of using cp -Rv /source /destination

Use this instead rsync -av /source /destination

Now all of your folders and the contents of them will be processed in alphabetical order and you can easily see how the file copy is progressing.

We have a full description of this solution at our online backup website.

Moderators please note: I posted this once before but it got deleted, perhaps because I did not include enough detail in the answer, or because of the link. Maybe you'll accept this more detailed answer.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .