Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to emulate cp and mv --parent on osx

Tags:

macos

cp

mv

Osx mv and cp does not have the --parents option, so how does one emulate it ?

I.e. mv x/y/a.txt s/x/y/a.txt when s is empty gives a no directory found error unless one does a mkdir first which is rather cumbersome when trying to do this did thousands of files.

like image 849
Max Rydahl Andersen Avatar asked Aug 13 '10 06:08

Max Rydahl Andersen


1 Answers

The solution (which works on all platforms that has an rsync) is:

Use find or some other tool to create a file with the files you want moved/copied, i.e.

find *.mp3 > files.txt

Then use rsync files-from to specify it and by using --remove-source-files it behaves like a mv -p and without it works like cp -p:

rsync --files-from=files.txt --remove-source-files src dest 

Slower than a native mv/cp but its resumable and rsync got alot more options that can otherwise help too for cleaning up your files.

like image 68
Max Rydahl Andersen Avatar answered Sep 23 '22 18:09

Max Rydahl Andersen