2012-03-03 16 views

答えて

46

は、 "1行のコマンド/スクリプト" として

cp file1 file2 ; cp file1 file3 

、カウントしていますか?方法について

for file in file2 file3 ; do cp file1 "$file" ; done 

または、「コピー」の少し緩い感覚のために:

tee <file1 file2 file3 >/dev/null 
+8

「ティー」 – knittl

+4

「tee file2 file3」 – jfs

+2

@JFSebastian:ええ、OPは明らかにこれが2つ以上の宛先ファイルで機能することを望んでいるので、私はサポートを強調するフォームを使いましたそれ。多分、私は 'tee file2 file3 file4'を書いて、2ファイルの並列処理を省くべきでしょうか? – ruakh

0

私は考えることができる最も簡単/最速のソリューションは、forループです:

for target in file2 file3 do; cp file1 "$target"; done 

汚いハックは以下のようになり(私は強くそれに反対し、とにかくbashでのみ動作します):

eval 'cp file1 '{file2,file3}';' 
0

標準のスクリプトコマンドを使用できます代わりにそのための:

バッシュ:

for i in file2 file3 ; do cp file1 $i ; done 
2
for FILE in "file2" "file3"; do cp file1 $FILE; done 
1

あなたはshiftを使用することができます。

file=$1 
shift 
for dest in "[email protected]" ; do 
    cp -r $file $dest 
done 
+1

' shift'の効果は何ですか? –

0

使用して、次のようなものを。 zshで動作します。

猫ファイル> firstCopy> secondCopy> thirdCopy

又は

猫ファイル> {1..100} - 番号を持つファイル名の。

小さなファイルには適しています。

大きなファイルの場合は、前述のcpスクリプトを使用する必要があります。ちょうど楽しみのため

+1

シェルが 'zsh'と仮定して –

+0

//、これはBashで動作しませんでした。 –

+0

ファイルのサイズが重要なのはなぜですか? RAMサイズによって制限されていますか? –

1

、あなたがファイルの大きなリストが必要な場合:

tee <sourcefile.jpg targetfiles{01-50}.jpg >/dev/nullからKelvin Feb 12 at 19:52

しかし、ほとんどのタイプミスがあります。次のようになります。

tee <sourcefile.jpg targetfiles{01..50}.jpg >/dev/null

そして、前述したように、権限をコピーしないこと。

関連する問題