我的目标是匹配特定子目录中的特定文件。我有以下文件夹结构
`--数据 |-- 一个 |-a.txt |-b |-- b.txt |-c |-- c.txt |-- d |-- d.txt |-- e |-- e.txt |-- 组织-1 | |-- a.org | |-- b.org ||-- org.txt ||-- 用户-0 | | |-- 一个.txt | | |-- b.txt
我尝试仅列出数据目录中的文件。我能够在 RHEL 中使用以下命令获得正确的结果
查找./testdir/-iwholename“*/data/[!/].txt” 文本文件 文本文件 文本文件 文本文件 电子书
如果我在 Ubuntu 中运行相同的命令,它不起作用。
谁能告诉我为什么它在 Ubuntu 中不能运行?
编辑:
经过一些测试,我发现根据我的帖子,它在 RHEL 和 Ubuntu 中都可以正常工作。问题出在其他地方。我的 Ubuntu 系统中的文件是数据文件。
非常奇怪的是,这些文件类型没有在 RHEL 和 Ubuntu 中列出。
[supratik@testserver ~]$ ls testprog/data/ a.txt数据.dat [supratik@testserver ~]$ 文件 testprog/data/a.txt testprog/data/a.txt: ASCII 文本 [supratik@testserver ~]$ 文件 testprog/data/data.dat testprog/data/data.dat:数据 [supratik@testserver ~]$ find ./testprog/ -iwholename "*/data/[!/].txt" ./testprog/数据/a.txt [supratik@testserver ~]$ find ./testprog/-iwholename“*/data/[!/].dat”
答案1
我刚刚在 CentOS 5.6,6.0 和 Ubuntu 9.04,10.04 和 11.04 上检查了这个问题,我得到了相同的答案,即
find ./testdir/ -iwholename "*/data/[!/].txt"
./testdir/data/c.txt
./testdir/data/d.txt
./testdir/data/a.txt
./testdir/data/e.txt
./testdir/data/b.txt
你可以得到类似的结果
Find ./testdir/data/ -maxdepth 1 -name '*.txt'