如何使用名称中看起来像 Windows 文件路径的文件重命名一组文件

kin*_*986 10 command-line rename batch-rename

我得到了一堆文件名乱七八糟的文件。所有文件名都有相同的开头,看起来是 windows 文件目录。问题是有 700 多个文件,我真的不想遍历并手动重命名所有文件。这些是文件名的示例(注意:这些都没有文件目录):

G:some\really\long\file\path\then\the\name1.jpg
G:some\really\long\file\path\then\the\name2.png
G:some\really\long\file\path\then\the\filename.txt
G:some\really\long\file\path\then\the\file_name.mov
...
Run Code Online (Sandbox Code Playgroud)

重要的一点是每个文件都有 G:some\really\long\file\path\then\the\我想要的文件名。

所以我希望上面的文件看起来像:

name1.jpg
name2.png
filename.txt
file_name.mov
Run Code Online (Sandbox Code Playgroud)

我已经尝试了该rename命令,但没有成功。我还是 Linux 的新手,真的不知道如何去做或者真的不知道谷歌是什么。任何帮助,将不胜感激。

Zan*_*nna 18

我只是删除了最后一个反斜杠的所有内容 rename

$ rename -n 's/.*\\//' G*
rename(G:some\really\long\file\path\then\the\file_name.mov, file_name.mov)
rename(G:some\really\long\file\path\then\the\filename.txt, filename.txt)
rename(G:some\really\long\file\path\then\the\name1.jpg, name1.jpg)
rename(G:some\really\long\file\path\then\the\name2.png, name2.png)
Run Code Online (Sandbox Code Playgroud)

消除 -n测试后以实际重命名文件。

笔记

  • -n 什么都不做,只需打印将要更改的内容
  • s/old/new替换oldnew
  • .* 任意数量的任意字符
  • \\ 第一个反斜杠是为了逃避第二个。
  • 由于正则表达式是贪婪的这个表达式 .*\\吃掉了所有前面的反斜杠。
  • 由于最后两个分隔符//为空,因此搜索部分中匹配的所有内容都将被删除


αғs*_*нιη 10

您可以完全bash使用shell 参数扩展来完成此操作。

${file##*\\}(cut-up-to-last-prefix) 删除从文件名开头到最后一次\看到的所有内容。

for file in *; do
    mv -v "$file" "${file##*\\}";
done
Run Code Online (Sandbox Code Playgroud)

重命名结果如下:

‘G:some\\really\\long\\file\\path\\then\\the\\file_name.mov’ -> ‘file_name.mov’
‘G:some\\really\\long\\file\\path\\then\\the\\filename.txt’ -> ‘filename.txt’
‘G:some\\really\\long\\file\\path\\then\\the\\name1.jpg’ -> ‘name1.jpg’
‘G:some\\really\\long\\file\\path\\then\\the\\name2.png’ -> ‘name2.png’
Run Code Online (Sandbox Code Playgroud)


pom*_*sky 6

如果您正在寻找GUI解决方案,有许多批量重命名应用程序。我建议Thunar,它是 Xfce 的默认文件管理器。它带有一个方便的批量重命名工具。您可以通过在终端中运行以下命令来安装 Thunar:

sudo apt-get install thunar
Run Code Online (Sandbox Code Playgroud)

您可能也可以从 Ubuntu 软件安装。

如何使用该实用程序

  1. 安装 Thunar 后,启动批量重命名实用程序。
  2. 单击+图标并添加要重命名的文件。
  3. 单击所选文件列表正下方的下拉框,然后选择Search & Replace
  4. 搜索:框中输入G:some\really\long\file\path\then\the\(您要删除的部分),将替换为:框留空。您应该会在“新名称”列中看到更改的预览。
  5. 要应用更改,请单击重命名文件按钮。

除了搜索和替换此实用程序支持以下操作:

  • 插入日期/时间
  • 插入/覆盖
  • 编号
  • 删除字符
  • 大写小写

  • Thunar 非常方便,并且似乎可以与其他文件浏览器很好地共存,因此我认为为此目的安装它可能是值得的。但是您能否通过解释*如何*在 Thunar 中进行批量重命名来扩展此答案? (2认同)