Linux系统批量修改文件夹名字命令
假如路径 /data/ftp/KFQ下有 3001 3002 2003 2004 2005 五个文件夹
这个五个文件里都包含了 “你好” 这个文件夹
怎么样能批量把所有的 “你好” 文件夹名称换成 “NIHAO”
基于new bing的编写:
cd /data/ftp/KFQ
rename 's/你好/NIHAO/' 你好*/
解释一下上述命令:
首先进入目标路径 /data/ftp/KFQ
使用 rename 命令,后面跟上需要替换的内容。其中 's/你好/NIHAO/' 是一个正则表达式,表示将所有匹配到的“你好”替换成“NIHAO”。
最后加上目标文件夹名称 你好*/ ,表示只修改所有以 你好 开头的文件夹名称。
执行完毕后,就能够将所有 “你好” 文件夹名称换成 “NIHAO”。
【或者】
cd /data/ftp/KFQ
for i in 你好*; do mv $i ${i/你好/NIHAO}; done
find /data/ftp/KFQ -type d -name "你好" -execdir mv {} NIHAO ;
这个问题好像回答过?
答案查考ChatGPT Plus版,在Linux系统下,可以使用以下命令批量修改文件夹名称:
进入目标文件夹所在的路径:
cd /data/ftp/KFQ
运行以下命令,使用find
命令找到所有包含"你好"的文件夹,并使用rename
命令将文件夹名称中的"你好"替换为"NIHAO":
find . -type d -name "*你好*" -execdir rename 's/你好/NIHAO/' {} \;
上述命令中的find
命令将搜索当前目录下所有类型为文件夹(目录)且名称包含"你好"的项目。然后,-execdir
参数将对每个匹配的项目执行后续命令,即rename
命令。rename
命令中的正则表达式s/你好/NIHAO/
表示将"你好"替换为"NIHAO"。
执行完以上命令后,所有文件夹名称中的"你好"都将被替换为"NIHAO"。请确保在执行这些命令之前备份重要数据,并谨慎操作。
可以使用以下命令批量修改文件夹名称:
find /data/ftp/KFQ -type d -name "你好" -execdir rename 's/你好/NIHAO/' {} ;
解释:
find 命令用于在指定目录下查找包含关键字的文件夹;
-type d 参数表示只查找文件夹类型;
-name "你好" 参数表示只查找名称中包含 "你好" 的文件夹;
-execdir 参数表示对每个查找到的目标文件夹执行后面的命令;
rename 's/你好/NIHAO/' {} 即把每个目标文件夹的名称中的 "你好" 替换为 "NIHAO";
; 用于结束 -execdir 命令。
建议在操作前先备份原文件夹,以免意外情况造成不必要的损失。
保存以下为shell脚本,bash运行shell脚本文件,已实测
NIHAO_GBK=$(echo -e "\0304\0343\0272\0303")
NIHAO_UTF8=$(echo -e "\u4F60\u597D")
for F in /data/ftp/KFQ/*
do
[ -d $F/$NIHAO_GBK ] && mv $F/$NIHAO_GBK $F/NIHAO
[ -d $F/$NIHAO_UTF8 ] && mv $F/$NIHAO_UTF8 $F/NIHAO
done
使用rename试一下
cd /data/ftp/KFQ
rename 你好 NIHAO */你好
rename 's/你好/NIHAO/' */你好