允许您通过在文本编辑器中编辑文件路径来移动文件的脚本名称?

允许您通过在文本编辑器中编辑文件路径来移动文件的脚本名称?

我记得有一个存在的脚本,其内容如下,它允许您通过在文本编辑器中打开目录中所有文件的所有文件路径来移动目录中的文件 - 然后您可以在文本编辑器中编辑文件路径,并且在退出文本编辑器时它会重命名文件。

我似乎找不到这个脚本。有人知道它叫什么吗?我相信它是 shell 脚本集合的一部分。

答案1

vidir允许您在文本编辑器中编辑文件名。要选择编辑器,请设置EDITOR变量。在 Debian 或 Ubuntu 中vidir位于moreutils包中。

这是vidir可以做的(摘自man 1 vidir):

编辑目录时,目录中的每个项目都会出现在其自己的编号行上。这些数字用于vidir跟踪更改的项目。删除行以从目录中删除文件,或编辑文件名以重命名文件。您还可以切换数字对以交换文件名。

它说“编辑文件名以重命名”,但该工具可以做更多。通过编辑整个路径名,您可以将文件移动到其他目录,甚至移动到尚不存在的目录(vidir将尝试创建它们)。

编辑后,您需要保存文本文件并正常退出编辑器,只有这样vidir它才能完成工作。vidir如果您不修改文件(包括以其他名称或在其他位置保存)或编辑器失败退出(即退出状态为非零),则不会执行任何操作。退出编辑器而不保存文件或即使在保存文件后编辑器也失败(例子) 是堕胎的方法。

如果你担心某个路径名带有制表符或换行符,这会破坏某些东西,vidir那么请保持冷静。据我所知,vidir首先会拒绝使用这样的路径名。

例子:

  • vidir
    
    处理当前工作目录的内容但不会进入子目录。
  • vidir /chosen/directory
    
    处理所选目录的内容但不会进入子目录。
  • vidir *.mp3
    
    适用于任何*.mp3扩展为的。如果没有匹配,这可能会很奇怪;参见开头这个答案
  • find . -type f | vidir -
    
    适用于由提供的路径名find,通常是一个非常强大的工具(请参阅“理论”我的这个答案)。注意默认情况下find会进入子目录。
  • EDITOR=kate vidir …
    
    工作原理vidir …和用途kate与编辑器相同。

相关内容