web-dev-qa-db-ja.com

cp -x(ファイルシステムにとどまる)の目的?

同じファイルシステムにとどまりたい場合は、同じファイルシステムの出力パスを指定するだけでは不十分でしょうか。

それとも、誤って現在のファイルシステムを離れないようにするためですか?

25
neverMind9

ファイルのコピー先ではなく、ファイルのコピー先fromを制限します。再帰的なコピーで、cpがサブディレクトリにどのように降りるかを制御するのに役立ちます。したがって

cp -xr / blah

ルートファイルシステムのみがコピーされ、マウントされている他のファイルシステムはコピーされません。

the cp -x documentation を参照してください(ただし、区別は微妙です)。

59
Stephen Kitt

cpへの_-x_フラグはGNU拡張子です。単一のファイルをコピーする場合、このオプションは効果がありませんが、ファイル階層全体をコピーする場合、 _-x_オプションは、元のソースと同じファイルシステムに存在しないファイルおよびディレクトリのコピーを防止します。

たとえば、_/usr_および_/usr/local_にマウントポイントがあるファイルシステムでは、_cp -xR /usr /some-dest_を使用しても_/usr/local_の下の階層はコピーされません。

dufindなど、同様のセマンティクスを持つ_-x_オプションを持つ他のユーティリティがあります(フラグはfindの_-xdev_と呼ばれます)。およびrsync

28
Kusalananda