如何全局获取目录及其子目录中所有带有扩展名的文件?

问题描述 投票:0回答:2

这感觉一定有一个明显的答案,但我还没有找到。

考虑这个文件结构:

A.tsx
B.tsx
dist/C.tsx
dist/D.tsx
src/E.tsx
src/F.tsx
src/G.js
src/component/H.tsx
src/component/I.tsx
src/component/J.js

我想列出目录

.tsx
中的所有
src
文件及其所有后代。

这列出了

.tsx
中的所有
src
文件,但不包括其后代:

ls src/*.tsx

这列出了

.tsx
后代中的所有
src
文件,但不列出
src
本身:

ls src/**/*.tsx

有没有一种方法可以以一种模式将

.tsx
 及其后代 
中的所有 src 文件全局化?

bash shell command-line glob
2个回答
1
投票

您需要确保启用

globstar
选项,否则
**
只会被解释为两个相邻的
*
模式,每个模式将匹配 0 个或多个字符,因此它相当于
src/*/*.tex
,必须匹配src下的
some
目录。

shopt -s globstar
ls src/**/*.tex

应该可以。


-1
投票

试试这个:

ls src/**/*.tsx src/*.tsx 

© www.soinside.com 2019 - 2024. All rights reserved.