我一直在寻找一个单行为目录中的所有子文件夹名称和文件名添加前缀
例如以下示例中的“AAA”
/folder/AAAfile.txt
/folder/AAAread/AAAdoc.txt
/folder/AAAread/AAAfinished/AAAread.txt
我尝试过使用xargs并查找,但无法让它们以递归方式通过子目录及其内容。有什么建议? 詹姆斯
答案 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