On 05/06/2018 10:11 AM, Thomas Schmitt wrote:
Hi, Richard Owlett wrote:Thought I was doing that by specifying -x.Either cp -x has a bug or the target directory is not in a different filesystem than "/" and not a mount point of such a filesystem. Check the device numbers of "/" and "/media/richard/MISC...". E.g. like this $ stat / | fgrep Device Device: 803h/2051d Inode: 2 Links: 25 $ stat /bkp | fgrep Device Device: 814h/2068d Inode: 2 Links: 7 Here "/bkp" has a different device number (2068) than "/" (2051). So it (its inode, to be exacting) is in a different filesystem. As contrast see a directory in the same filesystem as "/": $ stat /home | fgrep Device Device: 803h/2051d Inode: 2228225 Links: 60
I get: richard@debian-jan13:~$ stat / | fgrep Device Device: 80eh/2062d Inode: 2 Links: 22 richard@debian-jan13:~$ stat /media | fgrep Device Device: 80eh/2062d Inode: 131073 Links: 5 richard@debian-jan13:~$ I gather that "cp" is then an inappropriate tool."tar" is inappropriate for my preferences - I was attempting to use "cp" as there would be multiple files &/or directories as input *and* output.
I suspect long term I want "rsync" [ *MUCH* reading to do! ]
Any way to accomplish that without explicitly listing all directories except /media ?If it is indeed a bug with cp -x, then you could use some archiver like "tar" which has options to exclude a file. > Get inspiration from googling "tar pipe for copying".
Although I wish to avoid "tar", I did get inspiration for a brute force method - I'll try it first before commenting.