有谁知道如何对“svn st
”的输出进行排序以按降序显示文件?实质上,相当于'ls -lt
'
我一直在运行'find ./ -mtime -1 -print
'以查看我在最后一天更改了哪些文件,但我想知道是否有办法使用svn向我显示SVN文件列表我按降序改变了。
我一直在研究一个项目大约2个月,所有这些都是本地编辑,100多个文件,我想根据我编辑它们的时间排序。
答案 0 :(得分:2)
svn status | while read -N 8 status && read file; do
mtime=$(stat -c %Y "$file" 2>/dev/null || echo 0)
printf '%010d\t%s%s\n' "$mtime" "$status" "$file"
done | sort -rn | cut -f 2-
while循环将文件名与状态指示符分开,然后在每行前面加上文件的修改时间。然后通过管道输出该输出以按修改时间对它们进行排序。最后,cut删除时间戳,保留原始输出但按排序顺序。
已删除的文件最终位于底部,因为您删除它们的时间未知。如果您希望将它们放在最上面,请将echo 0
更改为echo 999999999
。
答案 1 :(得分:0)
svn stat | grep "^M" | awk '{print $NF}' | xargs ls -lt
这将获取所有修改的文件,并在批处理上运行ls -lt。