如何查找所有.git没有权限被拒绝的消息?

时间:2017-08-08 14:03:50

标签: git ubuntu grep find permission-denied

(我有Ubuntu) 我的计算机上有一些git存储库。所以我希望在一个命令中拥有all的状态。我找到了这个答案How can I view all the git repositories on my machine?(@jmlane:for find / -name ".git"; d cd $ d / ..; echo pwd :; git status; echo; done)

但我有很多" Permission denied"消息。所以我搜索并找到了这个答案How can I exclude all "permission denied" messages from "find"?,但我不知道如何将它添加到我的问题中。

我尝试find -name ".git" | grep -v "Permission non accordée",但我的结果与find -name ".git"相同:

find: «./.cache/dconf»: Permission non accordée
find: «./.dbus»: Permission non accordée
./Documents/these/programmes/programme_ccm/.git
./Documents/these/rapports/centralisation/.git
./Documents/these/rapports/Barberis_review_2016/.git
./Documents/these/rapports/biblio/.git

我尝试find -name ".git" 2> grep -v "Permission non accordée"没有结果

但是当我尝试find -name ".git" | grep "Permission non accordée"时,我获得了

find: «./.cache/dconf»: Permission non accordée
find: «./.dbus»: Permission non accordée

2 个答案:

答案 0 :(得分:1)

这在我的机器上运行良好:

find -name ".git" 2> /dev/null

它将错误流放入特殊文件/ dev / null,这是简单的无效。

您的代码:

find -name ".git" 2> grep -v "Permission non accordee"

即将错误输出重定向到工作目录中名为grep的文件。

答案 1 :(得分:0)

您是否安装了locate个软件包并且updatedb正在运行cron?如果是,locate是你的朋友。命令

locate -b \*.git

将比find快得多。此外,locate会自动考虑权限 - 输出将仅列出当前用户可以访问的.git*.git个存储库。