"find" 명령을 사용하여 inode 번호를 찾는 방법은 무엇입니까?

"find" 명령을 사용하여 inode 번호를 찾는 방법은 무엇입니까?

"test"와 같은 특정 키워드로 시작하는 파일 이름의 inode 번호를 어떻게 찾을 수 있나요?

test, test1, test2라는 이름의 파일이 있다고 가정해 보겠습니다.

답변1

다음을 시도해 보세요(필수 cygwin또는 유사).

find . -type f -name 'test*' -printf '%p %i\n'

바라보다

man find | less +/'-printf format'

지침:

  • %p대표하다파일 경로
  • %i대표하다아이노드 번호

답변2

이를 수행하기 위해 find를 사용하는 방법에는 여러 가지가 있습니다.

find . -iname 'test*' -type f -exec ls -i {} \;

find:find 명령
.: 검색할 디렉터리
-iname 'test*': 대소문자에 관계없이 test*와 일치하는 항목 검색
-type f: 파일만 찾기
-exec ls -i {} \;: 발견된 각 파일에 대해 ls -i 실행

find . -iname 'test*' -type f -printf '%i %f\n'

find:find 명령
.: 검색할 디렉토리
-iname 'test*': 대소문자에 관계없이 test*와 일치하는 모든 항목 검색
-type f: 파일만 찾기
-printf '%i %f\n'- inode를 인쇄한 다음 파일 이름만 인쇄하고(디렉토리 없음) 각 파일을 줄바꿈으로 구분합니다.

노트:

  • -iname대소문자를 구분 하려면 -name바꾸십시오.
  • .현재 작업 디렉터리 외부의 항목을 검색하려면 절대 경로로 바꾸세요.
  • %f경로를 포함하여 파일 이름 으로 바꿉니다 %p(find 명령에서 상대 경로를 사용하는지 아니면 절대 경로를 사용하는지에 따라 다릅니다).
  • 디렉토리 내에서 선택하려면 매개변수 -prune-depth
  • 문자열을 좀 더 구체적으로 지정하여 'test[0-9]'test0-test9를 모두 찾거나 'test[0-9]*'"test"라는 문자열이 포함된 항목과 한 자리 숫자 및 그 이후의 항목을 찾는 등의 작업을 수행할 수 있습니다.

관련 정보