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.