从find(shell)命令中删除一些输出行
问题描述:
我正试图在本地机器上找到所有git存储库的列表。我得到所有的人,但我也得到了一些库具有权限的输出否认从find(shell)命令中删除一些输出行
find . -name .git -type d -prune | sed '/Permission/d'
命令的输出是
find: ./.Trash/Fuze_old.app/Contents/Frameworks/Fuze Helper.app: Permission denied
./.nvm/.git
./.oh-my-zsh/.git
./.Trash/AutoLayout/.git
./.Trash/DemoProject/.git
find: ./Library/Python: Permission denied
./.Trash/NavView/.git
./.Trash/Something/.git
./.zsh/zsh-autosuggestions/.git
我不想拒绝权限的线条。
我该怎么做?
答
“权限被拒绝”行可能在STDERR而不是STDOUT上,这就是为什么您的sed
命令无效。试试这个(如果你使用的是类Unix系统):
find . -name .git -type d -prune 2>/dev/null
那些可能会去stderr,你可以用'2>/dev/null'丢弃它们。 –
可能的重复[如何排除所有“权限被拒绝”消息从“查找”?](https://stackoverflow.com/questions/762348/how-can-i-exclude-all-permission-denied-messages-从-FIND) –