linux如何将文件名更改为其文件夹的名称?
我在Linux上工作, 我有一个包含许多子文件夹的文件夹,每个子文件夹中都有一个名为Analyze.txt的文件。 我想将所有这些文件(Analyze.txt)移动到一个文件夹中,并将Analyze.txt文件的名称更改为其来源的子文件夹的名称 谢谢linux如何将文件名更改为其文件夹的名称?,linux,Linux,我在Linux上工作, 我有一个包含许多子文件夹的文件夹,每个子文件夹中都有一个名为Analyze.txt的文件。 我想将所有这些文件(Analyze.txt)移动到一个文件夹中,并将Analyze.txt文件的名称更改为其来源的子文件夹的名称 谢谢 Raz创建一个bash script.sh并授予它正确的权限 chmod +x <file>.sh chmod+x.sh 让我们看看要写入脚本的代码。 首先,移动到根目录: cd <path-to-root> for
Raz创建一个bash script.sh并授予它正确的权限
chmod +x <file>.sh
chmod+x.sh
让我们看看要写入脚本的代码。
首先,移动到根目录:
cd <path-to-root>
for dir in `ls`; do
if [[ -d $dir ]]; then
cd $dir
mv ./Analyze.txt ./$dir.txt
mv ./$dir.txt <path-to-dest-directory>
cd ..
fi
done
cd
现在需要循环每个子文件夹,在中重命名文件,然后将其移动到目标目录:
cd <path-to-root>
for dir in `ls`; do
if [[ -d $dir ]]; then
cd $dir
mv ./Analyze.txt ./$dir.txt
mv ./$dir.txt <path-to-dest-directory>
cd ..
fi
done
'ls'中dir的;做
如果[-d$dir]];然后
cd$dir
mv./Analyze.txt./$dir.txt
mv./$dir.txt
光盘
fi
完成
使用这段代码,我假设目标目录不在树的根目录中。是否可以操纵$dir以仅包含文件夹名称的一部分?类似于if$dir=^[0-9]*-[0-9]*-[0-9]*.[0-9h]*-[0-9m]*-[0-9s]*.[0-9s]*.*;那么$name=$1#(.*)?是的,您可以使用正则表达式。看看这个答案:@xbarvazx