find は RHEL では奇妙なファイル順序を返しますが、OSX では返しません。

find は RHEL では奇妙なファイル順序を返しますが、OSX では返しません。

私が入るとき

find . -iname "[0-9]*.nii"

私のOSXコンピュータでは、以下を返します。

./03_Rest_fcMRI/9793_01_03_1.nii
./04_VEMP/9793_01_04_1.nii
./04_VEMP/9793_01_04_2.nii
./05_Tapping/9793_01_05_1.nii
./05_Tapping/9793_01_05_2.nii
./06_Adaptation/9793_01_06_1.nii
./06_Adaptation/9793_01_06_2.nii
./06_Adaptation/9793_01_06_3.nii
./06_Adaptation/9793_01_06_4.nii
./07_SWM/9793_01_07_1.nii
./07_SWM/9793_01_07_2.nii
./07_SWM/9793_01_07_3.nii
./08_Foot_Tapping/9793_01_08_1.nii

RHELに同じコード行を入力すると、次の結果が表示されます。

./06_Adaptation/9793_01_06_3.nii
./06_Adaptation/9793_01_06_4.nii
./06_Adaptation/9793_01_06_2.nii
./06_Adaptation/9793_01_06_1.nii
./03_Rest_fcMRI/9793_01_03_1.nii
./08_Foot_Tapping/9793_01_08_1.nii
./04_VEMP/9793_01_04_2.nii
./04_VEMP/9793_01_04_1.nii
./07_SWM/9793_01_07_3.nii
./07_SWM/9793_01_07_2.nii
./07_SWM/9793_01_07_1.nii
./05_Tapping/9793_01_05_2.nii
./05_Tapping/9793_01_05_1.nii

OSXのファイルの順序は私にとって論理的なようです。 RHELではそうではありません。私はパイプラインの並べ替えでRHELから同じ注文を得ることができることを知っていますが、それは私の問題ではありません。

RHELでfindが英数字以外の順序を出力する理由を理解しようとしています。

ベストアンサー1

find は、ファイルをソートせずに見つかった順序でリストします。また、見つかった順序でディレクトリに移動します。順序については何の前提もできませんが、findを再実行すると同じ順序が得られるので、再現可能だと思います。

Linuxでは、ファイルは次のようになります。いいえアルファベット順に保存されます。おそらく、OSXにあるかもしれませんし、アルファベット順に生成されたのかもしれません。

整列しないのは怠惰や間違いではありません。ファイルをソートすると、ファイルシステムの検索が完了するまで何も出力されません。これはほとんどの場合数分かかることがあります。

おすすめ記事