删除存储库中的最旧文件

时间:2011-09-23 00:36:01

标签: linux git bash

我有一个git repo,我有一个文件的修订版,标有unix时间戳。我想获取最旧的文件(例如,时间戳最小的文件)并将其删除。

单独使用Bash是否可行?如果是这样,怎么办?

1 个答案:

答案 0 :(得分:3)

如果要在目录树中找到最旧的文件,可以执行以下操作:

ls -tr $(find . -type f) | head -1

只要文件数不是太大,这就有效。如果您愿意删除“超过特定天数的所有文件”,则会更容易。例如,如果您想要摆脱超过5天的任何事情:

find . -type f -mtime +5 -print | xargs rm

你不想逐字逐句地运行;你想为find提供适当的过滤器 - 或者将它根目录放在approriate目录下 - 这样你就只能删除你真想要删除的文件。

显然你也需要将这些删除提交给git。你可以这样做:

find . -type f -mtime +5 -print | xargs git rm
git commit -m "deleted things"

...虽然请注意,这可能会提交您之前使用“git add”进行的更改。有些事情最好手工完成。