Purpose of cp -x (stay on file system)?
It limits where files are copied from, not where they’re copied to. It’s useful with recursive copies, to control how cp
descends into subdirectories. Thus
cp -xr / blah
will only copy the root file system, not any of the other file systems mounted.
See the cp -x
documentation (although its distinction is subtle).
The -x
flag to cp
is a GNU extension. When copying a single file, this option will have no effect, but when copying a whole file hierarchy, the -x
option prevents the copying of files and directories that do not live on the same filesystem as the original source.
For example, on a filesystem with mount points at /usr
and /usr/local
, using cp -xR /usr /some-dest
would not copy the hierarchy under /usr/local
.
There are other utilities with an -x
option with similar semantics, such as du
and find
(the flag is called -xdev
for find
), and rsync
.