"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桁の数字以降の項目を見つけるなどの操作を実行できます。