"ls -ltu" 명령이 마지막 액세스 시간을 기준으로 폴더/파일을 나열하지 못합니다.

"ls -ltu" 명령이 마지막 액세스 시간을 기준으로 폴더/파일을 나열하지 못합니다.

먼저 Linux 데스크탑에 폴더 2개를 만듭니다.

a
b

이제 터미널에서 실행해 보세요

ls -ltu

밝혀지다

drwxr-xr-x 2 root root 4096 Aug 30 20:33 b
drwxr-xr-x 2 root root 4096 Aug 30 20:33 a

a를 클릭하고 다시 실행해 보겠습니다.
위와 정확히 같은 결과입니다.

b를 클릭하고 다시 실행해 보겠습니다.
위와 정확히 같은 결과입니다.

마지막으로 클릭한 폴더를 기준으로 폴더를 정렬하려고 합니다. 그들은 그것을 추천했지만 ls -ltu효과가 없었습니다.

답변1

이 명령을 사용하여 stat파일 및 디렉터리에 대한 시간 관련 정보를 볼 수 있습니다.

$ mkdir a b

$ ll
total 8
drwxrwxr-x 2 saml saml 4096 Aug 31 00:08 a
drwxrwxr-x 2 saml saml 4096 Aug 31 00:08 b

$ ls -ltu
total 8
drwxrwxr-x 2 saml saml 4096 Aug 31 00:08 a
drwxrwxr-x 2 saml saml 4096 Aug 31 00:08 b

통계 출력

이제 다음 명령을 사용하여 이러한 디렉터리를 살펴보겠습니다 stat.

$ stat a b
  File: `a'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 5643285     Links: 2
Access: (0775/drwxrwxr-x)  Uid: (  500/    saml)   Gid: (  501/    saml)
Access: 2013-08-31 00:08:03.621936538 -0400
Modify: 2013-08-31 00:08:03.621936538 -0400
Change: 2013-08-31 00:08:03.621936538 -0400
  File: `b'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 5643286     Links: 2
Access: (0775/drwxrwxr-x)  Uid: (  500/    saml)   Gid: (  501/    saml)
Access: 2013-08-31 00:08:03.621936538 -0400
Modify: 2013-08-31 00:08:03.621936538 -0400
Change: 2013-08-31 00:08:03.621936538 -0400

입장a

이제 디렉터리에 액세스해 보겠습니다 a.

$ ls a

이제 디렉토리를 다시 확인해 보겠습니다 stat.

$ stat a b
  File: `a'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 5643285     Links: 2
Access: (0775/drwxrwxr-x)  Uid: (  500/    saml)   Gid: (  501/    saml)
Access: 2013-08-31 00:08:33.221267791 -0400
Modify: 2013-08-31 00:08:03.621936538 -0400
Change: 2013-08-31 00:08:03.621936538 -0400
  File: `b'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 5643286     Links: 2
Access: (0775/drwxrwxr-x)  Uid: (  500/    saml)   Gid: (  501/    saml)
Access: 2013-08-31 00:08:03.621936538 -0400
Modify: 2013-08-31 00:08:03.621936538 -0400
Change: 2013-08-31 00:08:03.621936538 -0400

디렉토리 통계에 영향을 미쳤다는 것을 알 수 있습니다 ls a.

앞으로

Access: 2013-08-31 00:08:03.621936538 -0400

뒤쪽에

Access: 2013-08-31 00:08:33.221267791 -0400

입장b

b이제 디렉토리 에 액세스하면 다음과 같습니다 ls b.

$ ls b

$ ls -ltu
total 8
drwxrwxr-x 2 saml saml 4096 Aug 31 00:17 b
drwxrwxr-x 2 saml saml 4096 Aug 31 00:08 a

통계 출력

ls -ltu액세스 시간이 변경되었으며 위의 출력은 다음과 같아야 함을 확인할 수 있습니다 .

$ stat a b
  File: `a'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 5643285     Links: 2
Access: (0775/drwxrwxr-x)  Uid: (  500/    saml)   Gid: (  501/    saml)
Access: 2013-08-31 00:08:33.221267791 -0400
Modify: 2013-08-31 00:08:03.621936538 -0400
Change: 2013-08-31 00:08:03.621936538 -0400
  File: `b'
  Size: 4096            Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 5643286     Links: 2
Access: (0775/drwxrwxr-x)  Uid: (  500/    saml)   Gid: (  501/    saml)
Access: 2013-08-31 00:17:15.279776957 -0400
Modify: 2013-08-31 00:08:03.621936538 -0400
Change: 2013-08-31 00:08:03.621936538 -0400

ls b액세스 시간 업데이트가 발생하는 간단한 상황을 다시 볼 수 있습니다 .

앞으로

Access: 2013-08-31 00:08:03.621936538 -0400

뒤쪽에

Access: 2013-08-31 00:17:15.279776957 -0400

일반화하다

위의 분석을 보면 ls -ltu예상 접속 시간을 기준으로 정렬된 디렉터리를 보여주지 않을 이유가 없습니다.

그래서 무슨 일이야?

액세스 시간이 추적되지 않도록 디렉토리를 마운트했을 수도 있습니다. 이는 왜 변화가 없었는지 설명합니다.

mount 명령에 대한 매뉴얼 페이지를 보면 다음 두 가지 옵션이 정의되어 있는 것을 볼 수 있습니다.

atime     Update inode access time for each access. See also the 
          strictatime mount option.

noatime   Do not update inode access times on this filesystem (e.g, 
          for faster access on the news spool to speed up news servers).

이 명령을 사용하여 파일 시스템이 어떻게 마운트되었는지 확인할 수 있습니다 mount. 장치 설치 후 noatime이 옵션이 나타나면 장치 설치 후 접속 시간(atime)이 추적되지 않습니다. 이는 일반적으로 성능을 향상시키기 위해 수행됩니다.

$ mount
/dev/mapper/vg_grinchy-lv_root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda5 on /boot type ext4 (rw)
/dev/mapper/vg_grinchy-lv_home on /home type ext4 (rw)
gvfs-fuse-daemon on /home/saml/.gvfs type fuse.gvfs-fuse-daemon (rw,nosuid,nodev,user=saml)

답변2

이것이 바로 당신에게 필요한 것입니다:

ls -Aru | tail -n 1  

관련 정보