
現在のディレクトリに「foo.txt」というファイルがあります。このディレクトリには次の名前もあります。私のフォルダ1、マイフォルダ2ちょっと…各フォルダには「constant」というサブフォルダがあります。
「foo.txt」をコピーしたいです。myfolder1/定数、myfolder2/定数など
次のコマンドを使用してこれを実行しようとしています。
cp foo.txt myfolder*/constant
これによりエラーが発生しました。
cp: omitting directory `myfolder1/constant'
cp: omitting directory `myfolder2/constant'
etc...
プレフィックスが同じ複数のディレクトリのサブフォルダにファイルをコピーする方法はありますか(この場合、プレフィックスは「myfolder」です)。
答え1
3つ以上のパラメータを使用すると、cp
最後のパラメータはターゲットディレクトリと見なされ、他のパラメータはその場所にコピーされるファイルと見なされます。
cp
ワイルドカードを使用していることを知りませんでした。シェルは、コマンドがワイルドカードを表示する前にワイルドカードを展開します。したがって、cp
複数のターゲット機能がある場合でも、この構文は使用できません。
ループが必要です。 Bourneのようなシェルから:
(ret=0
for dir in myfolder*/constant/; do
cp foo.txt "$dir" || ret=$?
done
exit "$ret")
ビジネスは$ret
失敗の終了ステータスを報告します。cp