【问题标题】:Batch rename with command line使用命令行批量重命名
【发布时间】:2017-03-06 07:23:15
【问题描述】:

我有一些文件:file1.txt、file2.txt,我想将它们重命名为:file1.something.txt 和 file2.something.txt 我找了一些类似的问题,我想出了这个:

for i in file*.txt; do echo  mv $i file*.something.txt; done

但不幸的是输出是:

mv file1.txt file*.something.txt

mv file2.txt file*.something.txt

因此只创建了 1 个文件。 可以请人帮忙吗? (我使用的是macbook air,我不确定这是否相关) 非常感谢

【问题讨论】:

    标签: command-line rename mv


    【解决方案1】:

    试试这个:

    rename -n 's/\.txt/something.txt' *
    

    (当您的测试正常时移除 -n 开关)

    还有其他同名的工具可能会也可能不会,所以要小心。

    如果您运行以下命令 (GNU)

    $ file "$(readlink -f "$(type -p rename)")"
    

    你会得到类似

    的结果
    .../rename: Perl script, ASCII text executable
    

    且不包含:

    ELF
    

    那么这似乎是正确的工具 =)

    如果不是,则将其设为 Debian 和派生类 Ubuntu 的默认值(通常已经如此):

    $ sudo update-alternatives --set rename /path/to/rename
    

    (将/path/to/rename 替换为perl's rename 命令的路径。


    如果你没有这个命令,搜索你的包管理器安装它或do it manually


    最后但同样重要的是,这个工具最初是由 Perl 的父亲 Larry Wall 编写的。

    【讨论】:

      猜你喜欢
      • 2012-11-15
      • 1970-01-01
      • 2019-01-25
      • 1970-01-01
      • 2012-06-13
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多