重命名OSX终端中的目录内容

时间:2015-10-14 13:36:27

标签: macos bash terminal

我有多个具有相似命名文件的文件夹(例如Article(1).rtfArticle(2).rtf等)。我想将它们全部存储在一个目录中,但由于它们具有完全相同的名称,因此会立即覆盖它们。我想在每个文件的名称中添加一个不同的数字,具体取决于它们所在的文件夹,以便名称不同。例如,第一个文件夹为Article(1)1.rtfArticle(2)1.rtf,第二个文件夹为Article(1)2.rtfArticle(2)2.rtf,等等。如何在终端中使用它?感谢。

1 个答案:

答案 0 :(得分:0)

使用GNU Coreutils的mv

一种方法是使用GNU coreutils的mv实用程序。您可以通过Homebrew安装它:

brew install coreutils

安装实用程序后,可以使用mv的GNU版本,Homebrew将其作为gmv提供,以避免与本机BSD版本冲突。 GNU版本有一个非常方便的--backup标志,这是这个用例的理想选择。例如:

find . -name '*rtf' \
       -exec gmv --backup=numbered {} /path/to/merge/directory/ +

这样可以防止文件被破坏,并产生版本化的文件名,如:

  • 第(1).RTF
  • 第(1)〜.RTF 1
  • 第(1)〜.RTF 2
  • 文章(2)的.rtf
  • 第(2)〜.RTF 1
  • 文章(2)的.rtf〜2

等等。然后,您可以使用其他可安装Homebrew的实用程序(如fdupes)进行重复数据删除或rename进一步处理文件名以满足您的目的。