460

ディレクトリを作成したいcpのですが、コピーしたファイルよりも古いファイルであっても、既存のファイルを上書きしたくありません。これは Crontab Bash スクリプトの一部になるため、完全に非対話的に実行したいと考えています。何か案は?

4

8 に答える 8

701

マニュアルページから取得:

-n, --no-clobber
              do not overwrite an existing file (overrides a previous -i option)

例:

cp -n myoldfile.txt mycopiedfile.txt
于 2012-02-22T10:12:11.933 に答える
55
cp -n

あなたが望むものです。マニュアルページを参照してください。

于 2012-02-22T10:11:25.880 に答える
37

「n」オプションがないことに気付いた人 (RedHat の私のように) はcp -u、ソースが既存のものよりも新しい (または既存のものがない) 場合にのみ、ファイルを書き込むために使用できます。

[編集] コメントで述べたように、これは古いファイルを上書きするため、OP が望んでいたものとはまったく異なります。そのためにcevingの答えを使用してください。

于 2013-06-04T16:45:25.763 に答える
36

これは RedHat で動作します:

false | cp -i source destination 2>/dev/null

更新することと上書きしないことは別のことです。

于 2013-11-15T09:20:21.240 に答える
-2

これは私にとってはうまくいきます。cp -i ソース宛先

于 2020-08-27T04:24:29.217 に答える