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


25

同じファイルシステムにとどまりたい場合、同じファイルシステムの出力パスを指定するだけではいけませんか?

それとも、誤って現在のファイルシステムを離れることを防ぐためですか?


1
異なるコンテキストでの-x:unix.stackexchange.com/a/358331/30851がcp に対しても同じ:-xがスキップします。ファイルシステムを移行して完全なコピーにしたい場合は、次のような方法でマウントすることを検討してください。あなたの全体像。
frostschutz

1
たとえば、-i「存在しない宛先を指定するだけではいけない」など、多くのフラグについて同じことを尋ねることができますか?
-JigglyNaga

1
@JigglyNaga私もそれを考えていました。ただし、ドキュメントでは-xが適切に表現されておらず、あまり明確ではありませんでした。
neverMind9

回答:


59

ファイルがコピーされる場所には制限からそれらがコピーされている場所ではありません。再帰コピーで、cpサブディレクトリへの下降方法を制御するのに役立ちます。かくして

cp -xr / blah

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

参照マニュアルを参照して(その区別は微妙ですが)。cp -x


3
そうそう、/ mntの下のネットワーク共有をコピーしたくないかもしれません。また、ホームドライブの下にリモートRCSリポジトリがマウントされていません。
-mckenzm

1
@mckenzmまた/mnt、OSの要件ではなく、ディストリビューションのセットアップによって強制されることもある人間の慣例にすぎないためです。/var/somewebsite/www/sessions負荷分散Webサーバーを実装するためにネットワークファイルシステムをマウントすることがあります
-slebetman

実際、この種のフラグは、マウントし忘れた巨大なネットワーク共有またはリムーバブルメディアを誤ってコピーすることを防ぎます。また、--excludeそれぞれを手動でブロックするオプションを指定する必要はありません。rsyncで非常に便利です。
ラッシー

3
それはまたのようなコピーのファイルシステム避け/dev/proc/sysあなたは一般的に「一斉」を読みたくないものをなど。
スティーブンキット

28

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

例えば、ファイルシステム上にマウントポイントと/usr/usr/local、使用してcp -xR /usr /some-dest下の階層をコピーしないでしょう/usr/local

そこと他のユーティリティである-xような同様のセマンティクスとオプションduとは、find(フラグが呼び出される-xdevためfind)、およびrsync

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.