忽略可以与壳体关联使用的命令,我想完成从所有目录和子目录中排除特定目录模式的全局模式。壳牌通配不包括目录模式
比方说,我有这样的目录结构:
+-- a
+-- a1
+-- assets
+-- a1-1
+-- a1-1.js
+-- a1-2
+-- a1-2.js
+-- a2
+-- a2.js
+-- b
+-- b1
+-- b1-2
+-- b1-2-3
+-- assets
+-- b1-2-3.js
+-- b.js
+-- c
+-- c.js
我想列出所有的JS没有在他们的文件路径assets
文件。
我试过到目前为止:
$ shopt -s globstar extglob
$ ls ./**/!(assets)/**/*.js
不仅没有上述模式实现它的目标,它甚至可以显示重复的输出。我知道我可以做这样的事情:
$ ls ./**/*.js | grep -v "assets"
或者可以输送任何其他命令,我只是想纯粹壳glob模式。
预期输出:
a/a2/a2.js
b/b.js
c/c.js
对不起,但是这个解决方案只显示一到两级目录中的js文件,超出这个范围的任何js文件都没有列出。 – ryeballar
对不起,没有彻底测试...固定... – anishsane