Bash 从ls中排除特定嵌套目录--忽略
我需要列出一个名为app的目录中的所有目录。 目录列表如下所示Bash 从ls中排除特定嵌套目录--忽略,bash,shell,ls,Bash,Shell,Ls,我需要列出一个名为app的目录中的所有目录。 目录列表如下所示 app/frontend app/authservice app/mailservice ............... ............... 我想列出应用程序目录中除根目录中的app/frontend以外的所有目录 我使用grep-v命令获得了所需的输出 ls -d /app/packages/*/ | grep -v packages/frontend/ 但是我想通过在ls命令中使用--ignore得到同样的结果。
app/frontend
app/authservice
app/mailservice
...............
...............
我想列出应用程序目录中除根目录中的app/frontend
以外的所有目录
我使用grep-v
命令获得了所需的输出
ls -d /app/packages/*/ | grep -v packages/frontend/
但是我想通过在ls命令中使用--ignore
得到同样的结果。ls--ignore
用于隐含条目,例如在没有-d
的情况下列出目录的内容,或者在带有ls-R
的递归列表中列出目录的内容。它对通过命令行传递的条目不起作用,这是您使用/app/packages/*/
完成的。重要的是,是shell扩展了*
全局,而不是ls
,因此就ls
而言,前端
目录是显式写出的
可以使用shell功能省略特定目录。此扩展glob将列出除前端之外的所有目录:
ls -d /app/packages/!(frontend)/
(在脚本中,您将需要shopt-s extglob
。扩展glob通常在交互式shell中默认启用,但在脚本中禁用。)ls--ignore
用于隐含条目,例如在没有-d
的情况下列出目录内容时,或者在带有ls-R
的递归列表中。它对通过命令行传递的条目不起作用,这是您使用/app/packages/*/
完成的。重要的是,是shell扩展了*
全局,而不是ls
,因此就ls
而言,前端
目录是显式写出的
可以使用shell功能省略特定目录。此扩展glob将列出除前端之外的所有目录:
ls -d /app/packages/!(frontend)/
(在脚本中,您需要
shopt-s extglob
。默认情况下,扩展glob在交互式Shell中处于启用状态,但在脚本中处于禁用状态。)如果这是针对脚本的,则应