Git - 如何重命名许多文件夹?

时间:2014-10-30 02:20:44

标签: git bash rename

我知道命令ls-files会生成一个文件列表,您可以在for循环中使用它来过滤和重命名所有文件,但是只有目录的命令是什么?我试图追加字符串" -dcmp"到项目中的所有目录名称。

2 个答案:

答案 0 :(得分:1)

没有特别的理由使用git,而不是使用通常的bash工具。具体来说,我会自己使用find,因为它是我以前用来做许多不同文件的类似工具的工具:

$ find . -name .git -prune -or -type d -exec git mv '{}'{,-dcmp} \;

答案 1 :(得分:0)

作为git基本设计的一部分,它不管理目录。

有些简化,目录只与文件的路径相关 但这意味着没有空目录。如果列出所有文件,将显示所有目录 您可以切断文件名部分以获取所有目录。

这样的东西
git ls-files ... | sed 's|/[^/]*$||' | sort -u

列出包含根据特定选项(...)列出的文件的所有目录 (这不适用于文件名中的空格 - 您会注意到带有空格的行,而行开头的引号会使-u--unique)陷入混乱。)

(如果您想在工作副本中使用所有目录(稍后我注意到),与git ls-files的各种选项列出的文件子集没有任何关系,您可以根本不需要,使用find的答案更清楚。)