osx: tree -I 命令错误打开目录
osx: tree -I command error opening dir
我刚刚用 brew
安装了 tree
,当我尝试 运行 时,它是这样的(在 python 项目文件夹中):
tree -I *.pyc
它 returns [错误打开目录] pyc
个文件,例如:
我明白了 运行宁 ls
:
a.pyc b.pyc
当我 运行 tree -I *.pyc
时,我得到:
b.pyc [error opening dir]
0 directories, 0 files
知道为什么吗?
用引号将传递给 -I
和 -P
的通配符模式括起来以避免通配:
tree -I '*.pyc'
来自man tree
:
Valid wildcard operators are
'*'
(any zero or more characters)
'?'
(any single character)
'[...]'
(any single character listed between brackets)
这不是 tree
的问题,而是 shell (bash) 进行文件名扩展 - 也称为通配。所以传入tree
的是当前目录中所有以.pyc
结尾的文件名的列表。只有第一个文件名会跟在 -I
选项 (a.pyc
) 之后,其他的将被视为目录名。
tree
想要做它的 own globbing(find
是一样的)所以你必须通过添加来保护它免受 shell报价:
tree -I '*.pyc'
引号将被 shell 删除,tree
将看不到,它只会看到 *.pyc
。
在这种情况下,单引号或双引号都可以解决问题,但坚持使用单引号可能更安全,因为其他扩展都是在双引号内完成的。
顺便说一句,当你遇到这种问题时使用:
set -x
将在 bash 扩展后显示命令。使用 set +x
将其关闭。这些可以在命令行或脚本中用于调试。
我在使用 pass 实用程序时遇到问题
我创建了一个类似于 github.com/myaccount 的密码并捕获了
[error opening dir]
当我试图找回密码时
重启后一切正常。
我刚刚用 brew
安装了 tree
,当我尝试 运行 时,它是这样的(在 python 项目文件夹中):
tree -I *.pyc
它 returns [错误打开目录] pyc
个文件,例如:
我明白了 运行宁 ls
:
a.pyc b.pyc
当我 运行 tree -I *.pyc
时,我得到:
b.pyc [error opening dir]
0 directories, 0 files
知道为什么吗?
用引号将传递给 -I
和 -P
的通配符模式括起来以避免通配:
tree -I '*.pyc'
来自man tree
:
Valid wildcard operators are
'*'
(any zero or more characters)
'?'
(any single character)
'[...]'
(any single character listed between brackets)
这不是 tree
的问题,而是 shell (bash) 进行文件名扩展 - 也称为通配。所以传入tree
的是当前目录中所有以.pyc
结尾的文件名的列表。只有第一个文件名会跟在 -I
选项 (a.pyc
) 之后,其他的将被视为目录名。
tree
想要做它的 own globbing(find
是一样的)所以你必须通过添加来保护它免受 shell报价:
tree -I '*.pyc'
引号将被 shell 删除,tree
将看不到,它只会看到 *.pyc
。
在这种情况下,单引号或双引号都可以解决问题,但坚持使用单引号可能更安全,因为其他扩展都是在双引号内完成的。
顺便说一句,当你遇到这种问题时使用:
set -x
将在 bash 扩展后显示命令。使用 set +x
将其关闭。这些可以在命令行或脚本中用于调试。
我在使用 pass 实用程序时遇到问题
我创建了一个类似于 github.com/myaccount 的密码并捕获了
[error opening dir]
当我试图找回密码时
重启后一切正常。