2016-09-17 31 views
1

我堅持找一個班輪爲前綴的例子添加到所有子文件夾和文件的名稱在目錄如何在文件夾和文件的前綴?

如「AAA」的

/folder/AAAfile.txt

/folder/AAAread/AAAdoc.txt

/folder/AAAread/AAAfinished/AAAread.txt

我使用xargs的,找到試過,但不能讓他們通過遞歸子目錄和去他們的con帳篷。有什麼建議麼? 詹姆斯

回答

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 
相關問題