(我有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
答案 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
个存储库。