如何为文件夹和文件添加前缀?

How to prefix folders and files within?

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

例如下面示例中的 "AAA"

/folder/AAAfile.txt

/folder/AAAread/AAAdoc.txt

/folder/AAAread/AAAfinished/AAAread.txt

我试过使用 xargs 和 find,但无法让它们递归地遍历子目录及其内容。有什么建议么? 詹姆斯

以下脚本应该可以满足您的需要(运行 它来自您的 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

你可以使用类似的东西

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

已使用您的文件夹结构进行测试,从根目录执行(与 AAAfile.txt 相同)。