8

bash プロンプトで、このコピーを実行できます

cp file.txt test1.txt

しかし、file.txtをいくつかのファイルにコピーしようとすると

cp file.txt test{2..4}.txt

エラーが発生します

cp: ターゲット `test4.txt' はディレクトリではありません

4

2 に答える 2

15

それはbashについてではなく、cpについてです。cp に 3 つ以上のパラメーターを指定する場合、最後のパラメーターは、他のすべてのパラメーターのコピー先のディレクトリにする必要があります。

for f in test{2..4}.txt ; do cp file.txt $f ; done
于 2011-04-07T12:18:23.553 に答える
5

*nix シェルがどのように機能するかを理解する必要があります。

DOS/Windows の世界では、ワイルドカードはプログラムによって処理されます。したがって、xcopy *.txt *.bakたとえば、 にはとのxcopy2 つのパラメーターが与えられます。ワイルドカードがどのように解釈されるかは、に完全に依存します。*.txt*.bakxcopy

*nix の世界では、ワイルドカードはシェルによって処理されます。xcopy *.txt *.bakたとえば、同様のコマンドは、最初に展開されて になりxcopy <list of files ending with .txt> <list of files ending with .back>ます。file1.txtしたがって、 tofile4.txtと別のファイルが存在すると仮定するold.bakと、コマンドは次のように展開されます。xcopy file1.txt file2.txt file3.txt file4.txt old.bak

コマンドについては、cpMichael が書いたとおりですcp。2 つ以上の引数を指定する場合、最後の引数はディレクトリでなければなりません。

于 2011-04-07T13:49:07.967 に答える