If I wanted to stay on the same file system, couldn't I just specify an output path for the same file system?
Or is it to prevent accidentally leaving the current 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.
cp -x documentation (although its distinction is subtle).
-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
cp -xR /usr /some-dest would not copy the hierarchy under
There are other utilities with an
-x option with similar semantics, such as
find (the flag is called