디렉토리의 파일만 나열하고 inode 번호를 표시합니다.

디렉토리의 파일만 나열하고 inode 번호를 표시합니다.

주어진 디렉토리에 있는 모든 파일을 나열하지만 디렉토리는 제외하고 inode 번호를 표시하는 방법.

ls -li | grep ^-inode 번호가 줄의 시작 부분에 표시되기 때문에 이와 같은 것은 작동하지 않습니다.

답변1

여러 가지 솔루션이 있습니다. 다음으로 시작하는 파일 이름이 없다고 가정합니다.-

ls -li | grep " -"
ls -li | awk '/ -/'

디렉토리에 가 포함되어 있으면 -이 문제를 해결할 수 있습니다.

ls -li | grep "[0-9][0-9]* -"
ls -li | awk '$2 ~ "-.{9}"'

답변2

당신이 사용할 수있는 find:

find . -maxdepth 1 -type f -exec ls -li '{}' \;

또는 ls비슷한 출력을 얻습니다.

find . -maxdepth 1 -type f  -printf '%i %M %n %u %g %kK %Tc %p\n'

파싱 ls나쁜 생각문제를 일으키는 경우가 많기 때문입니다.

실제로 직접 사용하고 싶다면 ls다음과 같이 할 수 있습니다.

ls -li | gawk '$2!~/d/'

답변3

찾아야 할 또 다른 대안:

find -maxdepth 1 -type f -printf "%i %p\n"

아니면 또 다른 것이 있습니다:

find -maxdepth 1 -type f -ls

답변4

이는 tree명령과 를 사용하는 또 다른 방법 입니다 grep. Grep은 디렉토리 항목을 필터링하는 데 사용됩니다.

$ tree --inodes -f -F|grep -v "/$"

$ tree --inodes -f -F|grep -v "/$"|less
.
|-- [10370679]  ./a
|-- [10359494]  ./a.bash*
|   |-- [10359495]  ./alsa/alsa-info.sh*
|   `-- [10370145]  ./alsa/alsa-info.txt.v8hSmCT2Rf
|   |   |   |-- [11147371]  ./apps/apache-maven-2.0.9/bin/m2*
|   |   |   |-- [11147367]  ./apps/apache-maven-2.0.9/bin/m2.bat
|   |   |   |-- [11147368]  ./apps/apache-maven-2.0.9/bin/m2.conf
|   |   |   |-- [11147372]  ./apps/apache-maven-2.0.9/bin/mvn*
|   |   |   |-- [11147369]  ./apps/apache-maven-2.0.9/bin/mvn.bat
|   |   |   |-- [11147373]  ./apps/apache-maven-2.0.9/bin/mvnDebug*
|   |   |   `-- [11147370]  ./apps/apache-maven-2.0.9/bin/mvnDebug.bat
|   |   |   `-- [11147378]  ./apps/apache-maven-2.0.9/boot/classworlds-1.1.jar
|   |   |   `-- [11147374]  ./apps/apache-maven-2.0.9/conf/settings.xml
|   |   |   `-- [11147376]  ./apps/apache-maven-2.0.9/lib/maven-2.0.9-uber.jar
|   |   |-- [11147363]  ./apps/apache-maven-2.0.9/LICENSE.txt
|   |   |-- [11147364]  ./apps/apache-maven-2.0.9/NOTICE.txt
|   |   `-- [11147365]  ./apps/apache-maven-2.0.9/README.txt

위의 코드는 디렉터리 계층 구조를 각 파일의 줄로 병합하고 스위치를 사용하여 -F트리가 /디렉터리인 각 줄에 후행을 추가하도록 합니다. 이 기능을 사용하면 이 후행이 있는 모든 줄을 잡고 /무시할 수 있습니다.

인용하다

관련 정보