On 20/07/15 01:34, Pádraig Brady wrote: > On 19/07/15 07:09, Steve Russell wrote: >> When performing a recursive copy of a large number of files it would be >> helpful to have an option to copy the files in each directory in sorted >> order of the file names. There are a couple of use cases for this. >> >> The first is to be able to easily observe the progress of the copy using the >> -v option. Currently, the "random" order of the copy means I can not tell >> how far the copy has progressed. On occasions I have seen cp -v display a >> top level directory starting with 'z' and assumed the copy was almost done >> only to see it start copying files from another directory earlier in the >> alphabet. >> >> The second use case is sometimes I would like to start working with the >> destination files before the copy has completed. For example if I see the >> destination has the top level directory "foo", an ordered copy means I can >> work with directories that are alphabetically before "foo" knowing that they >> will not change. >> >> Another minor use case is some mp3 players ignore the file names and >> metadata and always play tracks in the order they appear in the directory. >> Usually the filesystems used by these players will order directories in the >> same order files are added. For content like eBooks where track order is >> critical, a sorted copy would be a useful workaround for the limitations of >> these players. > > Thanks for the suggestion. > > The implementation would be quite simple given that we already > sort directory entries by inode number to improve performance > (though note that that performance enhancement may not be > effective going forward with newer file systems and SSDs). > > The implementation would leverage gnulib's SAVEDIR_SORT_NAME functionality. > > The interface would probably mirror tar's --sort option. > > I'm 55:45 for exposing this option to cp, install and maybe mv.
Upon consideration I'm down to 50:50. For the progress use case, one can use rsync, or perhaps an explicit progress option in cp. For the mp3 order case, one can use tar --sort to do the transfer. thanks, Pádraig.
