「cp」が再帰的であると予想できない場合はいつですか?

「cp」が再帰的であると予想できない場合はいつですか?

cpどのような状況でディレクトリでこのコマンドを使用したいが、まだ利用できない場合はありますか?いいえ再帰的ですか?考慮する:

$ tree
.
└── old
    └── inner
        └── a.txt

2 directories, 1 file

$ cp old/inner/ .
cp: omitting directory `old/inner/'

$ tree
.
└── old
    └── inner
        └── a.txt

2 directories, 1 file

それはまさに何をしたのでしょうか?それでは、なぜこの-rフラグを使用しないのか、明示せずにこれを暗示するのはどうでしょうか?この-rフラグは通常のファイルには影響しません。

$ cp -r old/inner/a.txt .
$ ls
a.txt  old

別名を付けることができることを知っていますが、cp私のcp -r目標は何も修正するのではなく、原因が何であるかを理解することです。

ベストアンサー1

私はしばしばディレクトリにファイルをコピーしたいのですが、なぜこれは奇妙に見えますか?それはあなたがしたいことに依存します。たとえば、プログラムを実行するためにこれらのファイルが必要であると仮定して、プロジェクトで使用されているすべてのファイルをディレクトリに保存することがあります。また、以前のバージョンやデータファイルなどを含むさまざまなサブディレクトリがあります。プログラムを実行するためにサーバーに転送するには、次のものが必要です。文書サブディレクトリではないので、cpデフォルトは正確に必要です。

時々する簡単な事実を除いていいえ再帰的にコピーするには、通常、ほとんどすべてのプログラムで再帰を明示的に有効にする必要があります。これは標準であり、ユーザーがプログラムを初めて使用するときに期待できるものです。したがって、再帰をデフォルト値に設定するのは良い考えではありません。再帰のためのフラグを追加する必要があるのは-r予想される動作です。通常、基本的に再帰したくありません(考えるかchmod待っgrepてくださいls)。

おすすめ記事