gpt4 book ai didi

linux:如何批量重命名文件夹名称和文件夹下的文件名

转载 作者:太空狗 更新时间:2023-10-29 11:13:04 27 4
gpt4 key购买 nike

我需要帮助来完成重命名文件夹和 的脚本。

例如:我当前的文件夹和文件如下:

Gideon/gideon_lisha/Gideon_samuel/Gideon_nathan.xml
Gideon/lisha_gideon/Gideon_noah.xml
...

我想要一个 shell 命令来重命名它们,如下所示:

Liang/Liang_lisha/Liang_samuel/Liang_nathan.xml
Liang/lisha_Liang/Liang_noah.xml
...

我并列:

#!/bin/bash

path=$1
filename=$2
newfilename=$3

echo "We are finding '$filename' under the folder '$path'"

count=1

for i in `find $path -iname *$filename*`

do
newpath=`echo $i | sed "s/$filename/$newfilename/g"`
sudo mv "$i" "$newpath"
echo "${count}: Renaming $i to $newpath"
let count++
done

但是脚本会停止到:

Liang/gideon_lisha/Gideon_samuel/Gideon_nathan.xml

因为改了文件夹名,所以找不到下一个路径。我不知道如何让脚本从内到外运行,而不是从外到内运行。

最佳答案

最后,我找到了答案:

#!/bin/bash

path=$1
filename=$2
newfilename=$3

echo "We are finding '$filename' under the folder '$path'"

count=1
for i in `find $path -iname "*$filename*" | tac`
do
newpath=`echo $i | sed "s@\(.*\)$filename@\1$newfilename@i"`
sudo mv "$i" "$newpath"
echo "${count}: Renaming $i to $newpath"
let count++
done

非常感谢@susbarbatus!

关于linux:如何批量重命名文件夹名称和文件夹下的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33684138/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com