如何为文件夹和文件添加前缀?
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 相同)。
我一直在寻找一种为目录中的所有子文件夹名称和文件名称添加前缀的方法
例如下面示例中的 "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 相同)。