指定されたディレクトリ内のすべてのファイルを一覧表示しますが、ディレクトリを除いて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
に/
末尾を追加します。この機能を使用すると、この末尾にあるすべての行をつかんで/
無視できます。