同じファイルシステムにとどまりたい場合は、同じファイルシステムの出力パスを指定するだけでは不十分でしょうか。
それとも、誤って現在のファイルシステムを離れないようにするためですか?
ファイルのコピー先ではなく、ファイルのコピー先fromを制限します。再帰的なコピーで、cp
がサブディレクトリにどのように降りるかを制御するのに役立ちます。したがって
cp -xr / blah
ルートファイルシステムのみがコピーされ、マウントされている他のファイルシステムはコピーされません。
the cp -x
documentation を参照してください(ただし、区別は微妙です)。
cp
への_-x
_フラグはGNU拡張子です。単一のファイルをコピーする場合、このオプションは効果がありませんが、ファイル階層全体をコピーする場合、 _-x
_オプションは、元のソースと同じファイルシステムに存在しないファイルおよびディレクトリのコピーを防止します。
たとえば、_/usr
_および_/usr/local
_にマウントポイントがあるファイルシステムでは、_cp -xR /usr /some-dest
_を使用しても_/usr/local
_の下の階層はコピーされません。
du
やfind
など、同様のセマンティクスを持つ_-x
_オプションを持つ他のユーティリティがあります(フラグはfind
の_-xdev
_と呼ばれます)。およびrsync
。