私の目標は、特定のサブディレクトリから特定のファイルを一致させることです。次のフォルダ構造があります
`-- データ |-- ア |-- a.txt |-- バ |-- b.txt |-- う |-- c.txt |-- ダ |-- d.txt |-- え |-- e.txt |-- org-1 | |-- a.org | |-- b.org | |-- org.txt | |-- ユーザー-0 | | |-- a.txt | | |-- b.txt
データディレクトリ内のファイルのみをリスト化しようとしています。RHELで次のコマンドを使用して正しい結果を得ることができます。
./testdir/ -iwholename "*/data/[!/].txt" を検索します。 .txt ファイル b.txt テキスト d.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'