2017-07-27 4 views
0

私は、「赤」と呼ばれる同じファイルを含む多くの整理番号付きファイル(001〜099)を持っています。これらのファイルはすべて1つのディレクトリにあります。私はすべての "赤"ファイルを1つのフォルダ(グローバル)にコピーしたいと思います。それぞれの "赤"ファイルを移動して、親フォルダで名前を変更したいとします。 001、002..etc .. ファイルを貼り付けてコピーして名前を変更したいのですが、私の場合はどうしたらいいですか?

私はどのように動きをコピーし、名前を変更することを知っているが、私は一緒に

それらを置く方法を知らない

だから私がやった

CP〜/ 00 * /赤〜/私はループにそれを作ると、ファイルが追加されるたびに001 +1を追加したいが、私は

を失敗したグローバル 赤MV 001

は、誰かが助けてくださいことはできますか? bashの>=bash-4

答えて

1
for i in {1..99} 
do 
    number=$(printf "%03d" $i) 

    cp ~/$number/red ~/global/$number 
done 

これは同様に働くかもしれない:

for number in {001..099} 
do 
    cp ~/$number/red ~/global/$number 
done 
+0

はどうもありがとうございます、それを試して病気! – tsumaranaina

1

は、このbashスクリプトは、あなたが説明してきた何をすべき:

for i in {1..99} 
do 
    NUMBER="$(printf "%03d" $i)" 
    cp ~/$NUMBER/red ~/global/$NUMBER 
done 

をループの各反復では、変数を$ NUMBERには、printfコマンドの出力が割り当てられます(これは、iの値を出力し、正面に適切な0パッディングでフォーマットされます)。その後、$ NUMBERは099

EDITに001からディレクトリ名を指定するために使用される:おっと、ステファンのように見えますが、それを私にビート

+0

ありがとうございました! – tsumaranaina

関連する問題