find retorna ordem estranha de arquivo no RHEL, mas não no OSX [duplicado]

0

Quando eu entro

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

na minha máquina OSX, ele retorna:

./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

Quando eu insiro a mesma linha de código no RHEL, recebo:

./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

A ordem dos arquivos no OSX parece lógica para mim. O do RHEL não. Eu sei que posso obter o mesmo pedido no RHEL canalizando para classificar, mas isso não é problema meu.

Estou tentando entender por que encontrar no RHEL essa ordem não-alfanumérica.

    
por Vincent 19.04.2015 / 21:37

1 resposta

1

find não classifica os arquivos, eles os listam na ordem em que os encontram. Ele também percorre os diretórios na ordem em que os encontra. Você não pode fazer nenhuma suposição sobre o pedido, mas acredito que ele será repetitivo no sentido de que, se você encontrar novamente, receberá o mesmo pedido.

No Linux, os arquivos não são armazenados em ordem alfabética. Talvez eles estejam no OSX, ou talvez tenham sido criados em ordem alfabética.

A não ordenação não é preguiça ou um erro, é para ser assim. Se fosse ordenar os arquivos, não seria capaz de produzir nada até que tivesse terminado de percorrer o sistema de arquivos, o que poderia levar minutos em muitos casos.

    
por 19.04.2015 / 21:48

Tags