3

スクリプトとして、私はステートメントを持っています

eval cp "$chapter"/subsections/* $temp/subsections

ただし、実際に「$chapter」/subsections/にファイルがあるかどうかはわかりません。結果として、エラーが発生します:

cp: cannot stat `Commissioning/subsections/*': No such file or directory

苦情を回避するためのcpのオプションはありますか(私は何も見つかりませんでした)?

ディレクトリ内のファイルの存在を確認する簡単な方法はありますか?

4

1 に答える 1

7

それは本当にcp不平を言っていません。のようなワイルドカードを使用する*と、シェルはそれらをすべての一致するファイルの完全なリストに置き換えます。一致するファイルがない場合は、をそのままにして、という名前のファイルをコピーする*ように指示します。cp*

代わりに、次のトリックを使用できます。

cp -r "${chapter}"/subsections/. "${temp}"/subsections

これで、ディレクトリ全体をに渡し、cp再帰的にコピーするように要求します。そして、あなたはそれを通してそれを参照しているので、その名前をコピーするの.cpはなく、内容だけをコピーします。

于 2012-07-20T07:25:51.180 に答える