批量修改不同子目录下的重名文件名,增加子目录信息

应用场景:

    不同子目录里的文件名重名,需要批量修改重名的文件名(增加子目录信息) 。

 

批量修改不同子目录下的重名文件名,增加子目录信息,并把它移动到当前目录下。

// $(NF-2) 中的2:要添加的子目录信息与文件名的目录级数差

find $PWD -name *key* | xargs ls -ld | grep -v ^d|awk '{print $9}' | tr -s '\n' | awk -F '/'  '{print "mv " $0" "$(NF-2)_$NF} ' | sh

或者

find $PWD -name *key* -type f | xargs ls -ld |awk '{print $9}' | tr -s '\n' | awk -F '/'  '{print "mv " $0" "$(NF-2)_$NF} ' | sh 

 

 

批量修改不同子目录下的重名文件名,增加子目录信息,不移动(只在原目录下修改)。

// $(NF-2) 中的2:要添加的子目录信息与文件名的目录级数差

find $PWD -name *key* | xargs ls -ld | grep -v ^d|awk '{print $9}' | tr -s '\n' | awk -F '/'  '{dir="";for(i=2;i<=NF-1;i++) dir=(dir"/"$i);print "mv " $0" "dir"/"$(NF-2)"_"$NF}' | sh

或者

find $PWD -name *key* -type f | xargs ls -ld |awk '{print $9}' | tr -s '\n' | awk -F '/'  '{dir="";for(i=2;i<=NF-1;i++) dir=(dir"/"$i);print "mv " $0" "dir"/"$(NF-2)"_"$NF}' | sh 

 

 

posted @ 2023-05-24 00:53  isarcyan  阅读(137)  评论(0)    收藏  举报