시스템의 루프백 장치 목록을 가져오기 위해 실행 losetup --list
(또는 그냥 )하면 출력이 의미 있는 순서로 되어 있지 않은 것 같습니다.losetup
0 $ losetup --list
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop1 0 0 1 1 /var/lib/snapd/snaps/core18_1885.snap 0 512
/dev/loop29 0 0 1 1 /var/lib/snapd/snaps/core18_1880.snap 0 512
/dev/loop19 0 0 1 1 /var/lib/snapd/snaps/gtk-common-themes_1506.snap 0 512
/dev/loop27 0 0 1 1 /var/lib/snapd/snaps/gnome-characters_539.snap 0 512
/dev/loop17 0 0 1 1 /var/lib/snapd/snaps/gnome-characters_550.snap 0 512
/dev/loop8 0 0 1 1 /var/lib/snapd/snaps/gtk-common-themes_1502.snap 0 512
/dev/loop25 0 0 1 1 /var/lib/snapd/snaps/kde-frameworks-5-qt-5-14-core18_4.snap 0 512
/dev/loop15 0 0 1 1 /var/lib/snapd/snaps/glimpse-editor_134.snap 0 512
/dev/loop6 0 0 1 1 /var/lib/snapd/snaps/gnome-calculator_730.snap 0 512
/dev/loop23 0 0 1 1 /var/lib/snapd/snaps/gnome-logs_93.snap 0 512
/dev/loop13 0 0 1 1 /var/lib/snapd/snaps/wormhole_112.snap 0 512
/dev/loop4 0 0 1 1 /var/lib/snapd/snaps/canonical-livepatch_94.snap 0 512
분명히 장치 이름이나 지원 파일 이름별로 정렬되지 않았습니다. 순서가 임의로 정해져 있나요?
답변1
losetup
읽다getdents64()
from /sys/block
이므로 해당 디렉토리의 항목 순서입니다.
동일한 순서(정렬되지 않음)를 얻으면 ls -f
다음과 같습니다.
# ls -f /sys/block | grep loop
loop1
loop6
loop4
loop2
loop0
loop7
loop5
loop3
그리고 losetup
비교해보세요:
# losetup
NAME SIZELIMIT OFFSET AUTOCLEAR RO BACK-FILE DIO LOG-SEC
/dev/loop1 0 0 0 0 /dev/shm/b 0 512
/dev/loop6 0 0 0 0 /dev/shm/c 0 512
/dev/loop4 0 0 0 0 /dev/shm/a 0 512
/dev/loop2 0 0 0 0 /dev/shm/c 0 512
/dev/loop0 0 0 0 0 /dev/shm/a 0 512
/dev/loop7 0 0 0 0 /dev/shm/d 0 512
/dev/loop5 0 0 0 0 /dev/shm/b 0 512
/dev/loop3 0 0 0 0 /dev/shm/d 0 512
맨페이지에는 getdents
주문에 대한 언급이 없지만readdir
설명하다:
The order in which filenames are read by successive calls to readdir()
depends on the filesystem implementation; it is unlikely that the names
will be sorted in any fashion.
정렬된 목록(등)으로 파일을 출력하는 프로그램은 일반적 으로 파일을 스스로 정렬하며, ls
.echo *
losetup
출력 의 경우 , 누구도 의미 있는 방식으로 정렬하려고 노력하지 않았다고 생각합니다.