cp:ソースとターゲットが同じ場合のエラー防止

cp:ソースとターゲットが同じ場合のエラー防止

次のエラーが報告されないように、cp(GNU coreutils)に指示できますか?

$ echo 1 > foo
$ cp foo foo

現在、レポートには次のように記載されています。

cp: 'foo' and 'foo' are the same file

これは非常に合理的ですが、常に間違っているわけではありません。概念的に、$sourceからファイルをコピーする場合、$dest既にそのディレクトリに存在する場合、既定では、コピー$destは既に構成を介して実行されます。状況によって異なる、これが必ずしもエラーとして報告されるわけではありません。マニュアルページに関連するコンテンツが見つかりません。この--updateオプションはうまくいくようですが、うまくいきません。

明らかに、いくつかの方法でこの問題を解決できますが、cpがすぐにこの問題を解決できるかどうか疑問に思います。

ベストアンサー1

これはGNU coreutils(coreutils 8.27以降)では不可能です。これは文書に記載されていません。ソースコード文書化されていない方法は表示されません。同じファイル性テストは、ハードリンクが作成された場合、またはファイルが同じ宛先を指すシンボリックリンクである場合にのみ許可されます。

Rsyncはこれを可能にするので、簡単な解決策rsynccp

おすすめ記事