2016-09-17 14 views
1

は私が/folder/AAAfile.txtフォルダとファイルのプレフィックスはどのようにするのですか?

下の例では、ディレクトリ内のすべてのサブフォルダ名とファイル名に

例えば「AAA」をプレフィックスを追加するワンライナーを探してこだわっています

/folder/AAAread/AAAdoc.txt

/folder/AAAread/AAAfinished/AAAread.txt

私はxargsのを使用して見つけるしようとしましたが、サブディレクトリを再帰的に行くためにそれらを得ることができず、彼らの詐欺テント。助言がありますか? ジェームズ

答えて

1

あなたのフォルダ構造を試験し

find . -mindepth 1 | sort -r | xargs -l -I {} bash -c 'mv $1 ${1%/*}/AAA${1##*/}' _ {}

のようなものを使用することができますルートから実行されます(AAAfile.txtと同じ)。

+1

部分文字列の削除でパラメータ拡張を有効に使用し、ファイル内のファイルの前にディレクトリの名前を変更しないようにする逆の並べ替えを使用します。 –

0

次のスクリプトは、(あなたのfolderディレクトリ内からそれを実行した)あなたの必要性を満たす必要があります。

for i in `ls -R`;do 
     dname=`dirname $i` 
     fname=AAA`basename $i` 
     if [ -f $i ] 
     then 
       mv $i $dname/$fname 
     fi 
     #this could be merged with previous condition but have been kept just to avoid invalid directory warning 
     if [ -d $i ] 
     then 
       mv $i $dname/$fname 
     fi 
done 
関連する問題