"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」という文字列を含む項目や1桁の数字以降の項目を見つけるなどの操作を実行できます。

関連情報