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