忽略可以與殼體關聯使用的命令,我想完成從所有目錄和子目錄中排除特定目錄模式的全局模式。殼牌通配不包括目錄模式
比方說,我有這樣的目錄結構:
+-- 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