如何在linux上一次更改多个文件夹名称

如何在linux上一次更改多个文件夹名称,linux,bash,Linux,Bash,我有一组名为 ->第1节、第2节、第3节,第12节 我如何将它们改为只读 ->视频1,视频2…,视频12 在linux平台上 我试过: mv部分*视频* 但是没有爱我们可以使用替换给定字符串中第一次出现的模式 把它和to结合起来 find-键入d-iname'section*'-maxdepth 1-execbash-c'mv“$0”“${0/section/video}”'{}\; :在当前目录中查找 -type d:仅搜索文件夹(对f文件使用-type f) -iname“sect

我有一组名为

->第1节、第2节、第3节,第12节
我如何将它们改为只读

->视频1,视频2…,视频12
在linux平台上

我试过:

mv部分*视频*
但是没有爱

我们可以使用替换给定字符串中第一次出现的模式

把它和to结合起来

find-键入d-iname'section*'-maxdepth 1-execbash-c'mv“$0”“${0/section/video}”'{}\;
  • :在当前目录中查找
  • -type d
    :仅搜索文件夹(对f文件使用
    -type f
  • -iname“section*”
    :搜索模式
  • -maxdepth 1
    :限制查找深度
  • -execbash-c'mv“$0”“${0/section/video}”{}
    
    • -exec
      为找到的每个路径运行以下命令
    • {}
      (路径由
      find
      找到)作为参数传递,以便我们可以使用
      $0
    • “$0”“${0/section/video}”
      • 从当前位置移动文件/文件夹
      • 我们使用上述bash语法将
        部分
        替换为
        视频
例如:

  • 导航到所需文件夹
    此答案假设搜索和替换模式仅在路径中出现一次
$cd/tmp/test
$
$
$rm-rf*
$mkdir节\1节\2节\35
$
$
$find。
.
/第1节
/第35节
/第2节
$
$find-键入d-iname'section*'`-maxdepth 1`-execbash-c'mv“$0”“${0/section/video}”{}\;
$
$find。
.
/视频2
/视频1
/视频35
$
$

小心使用有一个非常好的shell脚本,可以执行批重命名:

警告:使用前,请仔细阅读自述文件,尤其是最后的“Gotchas”部分

它将文件列表作为参数(或默认为当前目录的文件),并使用临时文件打开您喜爱的编辑器,其中每行都是您提供的文件路径之一。然后,您只需修改任何路径即可移动或重命名它

其优点是可以执行非常复杂的重命名,具体取决于所使用的编辑器

在您的情况下,您可以执行以下操作:

$ls
“第1节”“第10节”“第11节”“第12节”“第2节”“第3节”“第4节”“第5节”“第6节”“第7节”“第8节”“第9节”
$vimv部分*
[在Vim编辑器内部…]:%s/节/视频
[内部Vim编辑器…]:wq
重命名了12个文件。
$ls
“视频1”“视频10”“视频11”“视频12”“视频2”“视频3”“视频4”“视频5”“视频6”“视频7”“视频8”“视频9”

可能需要按顺序列出,然后使用新名称列出mv,如果您没有顺序文件夹,请将其列成一个数组,并从ithow上的字符串和concat视频中删除
部分?我有顺序文件夹。您可以使用
find
查找要重命名的每个文件。然后使用任何linux/bash工具将
部分
替换为
视频
。问题是我有一个空格后跟一个数字。我想保留空格和数字,把单词部分改成视频。一个如何做到这一点的示例将非常有用。(我已经使用linux 3天了)我相信ssh(这是一个shell吗?)哎呀,当我回显$shell时,我得到了/bin/bash,这太棒了。你能提供文档的参考资料吗?很高兴它有帮助。添加了更多的链接。如果我漏掉了,请告诉我。对不起,花了这么长时间。更改了我的答案,给出了重命名文件夹的示例。在引用和错误方面存在一些问题。通过使用
-maxdepth 1
防止
查找
搜索我们已重命名的文件夹来解决此问题。如果我错过了什么,请告诉我。看起来不错。非常感谢你回来。