gpt4 book ai didi

bash 错误?不能使用 negate extglob !(*/) 来过滤目录?

转载 作者:行者123 更新时间:2023-11-29 09:28:55 25 4
gpt4 key购买 nike

如果 glob */ 只匹配目录,那么逻辑上 extglob !(*/) 应该匹配非目录;但这不起作用。这是一个错误还是我遗漏了什么?这适用于任何 shell 吗?

测试1证明*/有效

$ cd /tmp; ls -ld */
drwxr-xr-x 2 seand users 4096 Jan 1 15:59 test1//
drwxr-xr-x 2 seand users 4096 Jan 1 15:59 test2//
drwxr-xr-x 2 seand users 4096 Jan 1 15:59 test3//

测试 2 以显示 !(*/) 的潜在错误

$ cd /tmp; shopt -s extglob; ls -ld !(*/)
/bin/ls: cannot access !(*/): No such file or directory

最佳答案

在 Bash 中,!() (如 *?*()@() )仅适用于一个路径组件。因此,!(<i>anything containing a <b>/</b> slash</i>)不起作用。

如果切换到 zsh , 你可以使用 *(^/)匹配所有非目录,或 *(.)匹配所有普通文件。

关于 bash 错误?不能使用 negate extglob !(*/) 来过滤目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8696462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com