如何在文件夹和文件中添加前缀?

时间:2016-09-17 15:33:18

标签: linux ubuntu batch-rename

我一直在寻找一个单行为目录中的所有子文件夹名称和文件名添加前缀

例如以下示例中的“AAA”

/folder/AAAfile.txt

/folder/AAAread/AAAdoc.txt

/folder/AAAread/AAAfinished/AAAread.txt

我尝试过使用xargs并查找,但无法让它们以递归方式通过子目录及其内容。有什么建议? 詹姆斯

2 个答案:

答案 0 :(得分: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