≡菜单

如何在Linux中使用3种方法一起重命名多个文件

对于Linux用户而言,重命名单个文件是非常简单的任务。但是重命名组中的多个文件可能不是直接的任务。在本文中,让我们回顾3种不同的方法来一起重命名多个文件。

方法1.使用重命名Linux命令

使用重命名命令可以重命名文件组。下面给出了使用重命名命令重命名组中多个文件的语法。

Syntax: 改名perlexpr [ files ]

 
要将所有html文件从html重命名为当前目录中的htm扩展名,请执行以下操作。

改名s/.html/.htm/ *.html

 
使用相同的概念,您还将所有* .txt文件重命名为* .bak文件(或)将所有* .bak文件重命名为* .txt文件等,

方法2。使用Linux Shell脚本一起重命名多个文件

您可以编写自己的shell脚本,以递归方式将指定模式的文件重命名为:

for filename in *.sql
do
echo $filename;
w_o_ext=`basename $filename .sql`;
echo $w_o_ext;
mv $filename $w_o_ext.psql;
done

方法3。使用Midnight Commander重命名多个文件

前阵子我们回顾了强大的功能 Linux午夜指挥官(mc)文件浏览器。 使用midnight命令,您可以使用正则表达式重命名多个文件,如下所述。

  1. 使用正则表达式选择所需的文件。按+,将要求正则表达式选择文件。例如,给* .psql将选择所有带有psql扩展名的文件。
  2. 使用正则表达式重命名所有选定的文件。按F6,它将询问源正则表达式和目标正则表达式,这样做将更改文件名。对于此示例,在源文件中提供* .psql,在目标文件中提供* .sql,这会将所有* .psql文件重命名为* .sql文件。

如果您喜欢这篇文章,您可能还会喜欢..

  1. 50个Linux Sysadmin教程
  2. 50个最常用的Linux命令(包括示例)
  3. 排名前25位的最佳Linux性能监视和调试工具
  4. 妈妈,我找到了! – 15个实用的Linux Find命令示例
  5. Linux 101 Hacks第二版电子书 Linux 101黑客手册

Bash 101 Hacks书 Sed和Awk 101黑客手册 Nagios Core 3书 Vim 101黑客手册

{ 13 评论… 加一 }

  • 宾尼·瓦 2009年6月12日,下午12:24

    感谢午夜指挥官的小费–我不知道。无论如何,我建议为此使用KRename– really nifty 至ol.

  • Iftikhar Ul Hassan 2009年6月12日,下午12:59

    嗨那’真的很好,感谢您的精彩帖子。

    但是您是否尝试过使用“mmv”命令(多次移动)。该实用程序不是linux标准命令集的一部分’t know why) but it’s really nice.

    因此,您只需要安装该实用程序

    [email protected]:~$ sudo apt-get install 毫米波

    然后,您可以非常轻松地移动多个文件,这是一个示例。

    ==>我想将所有扩展名为* .htm的文件重命名为* .html<==

    [email protected]:~$ 毫米波 “*.htm ” “#1.html”

    您可以从此处的出色教程中了解更多信息(http://linux.dsplabs.com.au/mmv-copy-append-link-move-multiple-files-under-linux-shell-bash-by-wildcard-patterns-p5/)

  • !ncognito 2009年6月13日,上午8:41

    第一种方法似乎很简单。

  • 纳尔迪 2009年6月13日,下午2:57

    哇..没有’不知道重命名是如此强大。一世’我会尝试用它代替我的最爱
    为f in *;做MV“$f” “${f//foo/bar}” ; done
    I’我不确定在此之前是否提到过,但JFYI:

    f = foofoo.foo

    #首先替换
    回声$ {f / foo / bar}#-> barfoo.foo

    #替换所有事件
    echo $ {f // foo / bar} # -> barbar.bar

    #从头开始替换第一场比赛
    回声$ {f#f * f}#-> oo.foo
    #注意‘star’ consumes 上 ly ‘oo’ here

    从头开始替换所有(正则表达式的最长匹配项)
    回声$ {f ## f * f}#-> oo
    #这里,有‘oofoo.’ hidden under the ‘star’ in regex ‘f*f’

    #扩展替换
    echo $ {f%foo} bar#-> foofoo.bar

    #从头开始替换
    回声$ {f%oo *}#-> foofoo.f

    #从末尾全部替换(正则表达式的最长匹配项)
    回声$ {f %% oo *}#-> f

    享受=)

  • 纳宾·林布 2009年6月14日,上午12:16

    你好

    我们需要很多时间在两个配置文件之间交换文件。是否有任何单个命令将交换两个文件,而不是像这样编写3个命令:mv abc.txt tmp.txt; mv def.txt abc.txt; mv tmp.txt def.txt

  • 飞网 2009年6月14日,上午8:07

    用文件的下划线替换空格字符
    找 。型f -iname“*.mp3” -exec 改名“s/ /_/g” {} \;

  • 拉梅什·纳塔拉詹(Ramesh Natarajan) 2009年6月14日,下午11:33

    @Binny,

    感谢您提供有关KRename的信息,它绝对是一个非常有用的工具。
     

    对于尚未使用KRename的用户,请签出一些 Krename的屏幕截图
     

    @Iftikhar,

    Thanks for the info. 毫米波 looks similar 至 rename. Is there anything special that 毫米波 does which 改名cannot do? (or) Is it pretty much the same?

     

    @Nardi,

    您的for循环类似于方法2。感谢您提供有关如何进行移动的详细示例。

     

    @Nabin,

    I’我不确定是否有单个命令可以进行交换。我希望其他人可以对您的问题提出一些想法。我想到的一件事是—而不是做多个MV’■可能您可以创建一个名为mvswap的别名,该别名可以具有多个mv命令。

     
    @Flynets,

    通常,用下划线或连字符替换文件名中的空格。感谢您分享解决该问题的好例子。

  • 尼克·斯托亚诺夫(Nick Stoianov) 2009年12月2日,下午5:02

    仅供参考:RedHat中的重命名命令不接受perl正则表达式。所以…..命令:重命名s / .html / .htm / * .html在RedHat上不起作用。

    如果要在Redhat上使用正则表达式来重命名文件– use: ren

    示例:/ usr / local / bin / ren‘s/ //g’ *.txt

    本示例将删除目录中文本文件中的所有空格。

  • [email protected] 2011年1月4日,下午2:09

    这些示例似乎都不能在xandros linux(eeepc)上运行,除非午夜指挥官如此笨拙,令我不敢使用它。
    当在DOS中如此简单时,为什么在Linux中重命名多个文件如此困难?’
    当我为自己的上网本选择linux时,我被成千上万个免费程序的便捷可用性所吸引。好吧我可以’找不到可以重命名文件的免费程序–如此常见的要求,并且所有命令行解决方案似乎都不起作用。 (包括chcase)有人知道吗?是Xandros的问题吗?
    风笛子有几十个…我确实在一个论坛上看到有人实际上建议手动逐个更改文件名。骂人吗?

  • 纳尔迪 2011年1月5日,上午3:07

    [email protected]:
    嗨,约翰。从您的投诉中,我们几乎找不到解决方法。这可能只是一些误解或不规范的行为。
    您能否更具体地说明您运行了哪些命令以及获得了什么输出?知道您使用的是什么外壳(输入“echo $SHELL”)只是为了确保它不理解bash命令。
    是的,这实际上是如何在DOS中完成的?

  • 理查德 2011年1月6日,下午1:57

    作为对尼克的回应,删除s /和所有后续的/’与Fedora一起使用空格分隔符的效果很好。

    改名.html .htm *.html

  • et 2012年11月6日,上午8:37

    在ubuntu服务器上正在使用这个版本
    [码]
    改名‘s|was|new|g’ /target/dir
    [码]
    除了从文件名中删除空格外,它可以完成工作

  • @ropherpanama 2013年5月25日,下午1:41

    嘿!在CentOS中,您可以输入:
    重命名abc 123 *,目录中所有包含abc字符串的文件都将替换为123,’真的很好!谢谢!

发表评论