我尝试移动几个文件时遇到此问题。我有3个文件,我需要移动而不需要放置子文件夹。
这些文件具有长名称,这使得任务更加困难。
例:
Lógica_matemática_para_ingeniería_de_sistemas_y_co..._----_(Pg_81--102).pdf
Lógica_matemática_para_ingeniería_de_sistemas_y_co..._----_(Pg_103--122).pdf
Lógica_matemática_para_ingeniería_de_sistemas_y_co..._----_(Pg_123--155).pdf
如何在终端解决这个问题?
我将非常感激。
如果您只是想在命令行上简化长文件名的输入,那么在bash中可以使用tab键来简化输入。例如输入命令的开头,例如mv L
然后点击Tab键,它将自动完成自动填充,直到名称不明确(例如,直到页码)。自动填充功能使输入这些名称非常容易。
如果你想重命名一堆文件,一个常见的伎俩是
ls
获取相关文件列表并使用sed
构建重命名这些文件的脚本,例如:
$ ls L * | sed's / ^ [^ 0-9] * \([0-9] * \) - \([0-9] * \))。pdf / mv“&”Pages \ 1- \ 2.pdf /”
这会查找一串不是数字的字符,然后在--
之前和之后抓取数字,然后输出一个字符串mv
,后跟原始名称,后跟包含页码的新名称。我知道它有点毛茸茸,但它是正则表达式的力量。这实际上并没有进行重命名,而是创建了可以在您选择重命名的命令。
无论如何,它产生如下文本输出:
mv“Lógica_matemática_para_ingeniería_de_sistemas_y_co... _ ---- _(Pg_103--122).pdf”Pages103-122.pdf mv“Lógica_matemática_para_ingeniería_de_sistemas_y_co...... _ ----(Pg_123--155).pdf”Pages123-155 .pdf mv“Lógica_matemática_para_ingeniería_de_sistemas_y_co... _ ---- _(Pg_81--102).pdf”Pages81-102.pdf
如果你想找出丰富的替代品,你可以google sed
教程/例子。而且,如果它变得非常复杂,还有其他选择,包括awk
和/或shell脚本。mv
命令看起来不错,你可以重复这个过程,这次将输出管道输出到sh
来实际执行重命名:
$ ls L * | sed's / ^ [^ 0-9] * \([0-9] * \) - \([0-9] * \))。pdf / mv“&”Pages \ 1- \ 2.pdf /'| SH您可以安装其他文件重命名实用程序,但老派的Unix民众通常会让sed
为我们完成这个过程。