inode 수에 대한 링크 수를 계산하시겠습니까?

inode 수에 대한 링크 수를 계산하시겠습니까?

inode 번호의 링크 수를 계산하는 방법은 무엇입니까? inode 번호가 592255라는 것을 알고 있는 경우 링크 수를 확인하려면 어떻게 해야 합니까?

디렉토리에 링크 수가 2개 이상 있다는 것을 알고 있지만 수정 방법을 모르겠습니다.

답변1

이름을 사용하여 링크 수 찾기

stat다음을 사용하여 특정 파일/디렉토리에 대한 링크 수를 얻을 수 있습니다 .

$ stat lib/
  File: ‘lib/’
  Size: 4096        Blocks: 8          IO Block: 4096   directory
Device: fd02h/64770d    Inode: 11666186    Links: 3
Access: (0755/drwxr-xr-x)  Uid: ( 1000/    saml)   Gid: ( 1000/    saml)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2014-03-21 18:16:10.521963381 -0400
Modify: 2014-01-13 17:16:49.438408973 -0500
Change: 2014-01-14 17:57:46.636255446 -0500
 Birth: -

매뉴얼 페이지를 살펴보십시오 stat.

%h     number of hard links
%i     inode number

따라서 stator 출력 함수를 사용하여 직접 값을 얻을 수 있습니다.--printf--format

$ stat --printf="%h\n" lib/
3

$ stat --format="%h" lib/
3

$ stat -c "%h" lib/
3

inode를 사용하여 링크 수 찾기

반면에 inode 번호만 알고 있다면 다음과 같이 거꾸로 작업할 수 있습니다.

$ ls -id lib
11666186 lib

$ find -inum 11666186 -exec stat -c "%h" {} +
3

인용하다

답변2

명령에 inode 번호를 제공하고 파일에서 find명령을 실행하도록 지시합니다.stat

find . -inum #### -exec stat -c "%h" {} \;

답변3

예를 들어

ls -l passwd
-rw-r--r-- 1 root root 1402 2008-03-30 17:49 passwd

파일을 참조할 때 이 숫자(1)는 실제로 파일의 링크 수 또는 디렉토리를 참조할 때 포함된 디렉토리 항목(. 및 .. 항목 포함)의 수입니다.

다른 예시

ls -i /etc/passwd
8654127 /etc/passwd

/etc/passwd의 inode 번호입니다. 이제 다음을 통해 해당 inode 번호 8654127에 실제로 연결된 링크 수를 찾을 수 있습니다.

find /etc/ -inum 8654127
/etc/passwd

내 예에서는 /etc/passwd이므로 상황에 따라 다음을 수행할 수 있습니다.

find / -inum 592255

답변4

inode에서 링크 수 가져오기아니요ext2// 사용할 수 있는 ext3파일 시스템 에서 전체 파일 시스템을 검색합니다 . 여기서 단점은 장치를 알고 루트 권한이 있어야 한다는 것입니다. 물론 속도가 훨씬 빨라진다는 장점이 있습니다. inode가 있는 파일 의 경우 :ext4debugfs5638454dev/sda2

sudo debugfs -R 'stat <5638454>' /dev/sda2

On 에서는 장치 대신 btrfs마운트 지점이 제공됩니다 ./mnt

stat -c %h $(sudo btrfs inspect-internal inode-resolve 5638454 /mnt)

관련 정보