2016-04-02 12 views
0

私はパス内のすべてのフォルダに入ることができるbashコマンドの配線に問題があります。ファイルの名前をすべてX_filenameに変更します。Xはフォルダ数(最初のフォルダの場合は1、2の場合は2など)、filenameは元のファイル名です。次に、名前を変更したファイルを1つのディレクトリに移動したいとします。Desktop/distとします。ファイルの名前を変更して別のフォルダに移動するためのBashスクリプト

どうすればいいですか?それは私が望んでいたフォルダに移動does notの -

count=0 
for i in *; do 
    mv "${i}" ${count}_file.`echo "${i}" | awk -F. '{print $2}'` 
    ((++count)) 
done 

はしかし、これだけの変更、フォルダ内のすべてのファイル:

は、これまでのところ私はそのようなことを書きました。

+0

ようこそ:

は、ここでの例です。 – Cyrus

+0

@Cyrus、私のコードを追加 – Noblenectro

+0

このフォルダをコマンドに追加... –

答えて

0

これを実現するには、カウンタとループを使用します(for..in..do...done)。 SO、あなたのコーディングの努力を表示してくださいする

#!/bin/bash 

FILES=./files/* 
TARGET=~/Desktop/dist # make sure that folder exists! 
COUNTER=1 # if you want to start from 0, just put 0 there 
for f in $FILES 
do 
    echo "Processing $f file..." 
    mv $f $TARGET/$COUNTER"_"${f##*/} 
    let "COUNTER++" 
done 
+0

これは私のパス内のすべてのフォルダに入りますか? – Noblenectro

+0

ああ、私は見ることができます。 ./files内のすべてのフォルダに格納されます。 – Noblenectro

+0

いいえ、そうではありません。 (申し訳ありませんが、それを逃した)しかし、それは同様にディレクトリをコピーします。 – ForceMagic

関連する問題