我需要一个命令来列出SVN存储库中大于1GB的文件。我如何实现这一点,如果有人可以帮助我完成命令,那就太好了。
我正在使用命令行客户端来实现此目的。
感谢您的帮助。
编辑内容:
我试过这个命令:
svn list --verbose --recursive file://path/to/repo | du -sh * | grep G
这个命令是安全的,可以返回大于1 gig的文件,还是有任何备用命令可以运行?
答案 0 :(得分:5)
du -sh *
不是你想要的。它将在当前目录上运行,而不是在通过标准输入提供的列表上运行。不过,你有正确的总体思路。
svn list -v -R file://path/to/repo >svnlist.txt
将创建一个文本文件,其中包含有关repo中每个文件的详细信息。每行中的第三项是文件大小(以字节为单位)。你想要做的是过滤掉所有第三个字段的行,其值为1073741824或更高。
gig=$(( 1024*1024*1024 ))
while read line
do
size=$(echo $line | awk '{print $3}')
[[ $size -ge $gig ]] && echo $line
done <svnlist.txt
这使用awk
来提取第三个字段,即大小(以字节为单位)。如果此值大于千兆字节的预计算值,则它会打印出包含文件大小和路径的整行。目录存在问题,因为它们没有大小字段。在他们的情况下,size
最终将包含一个月的名称。由于文本和数字在词汇上的比较方式,if
在这种情况下应始终评估为假。