如何使用“find”命令查找索引节点号?

如何使用“find”命令查找索引节点号?

如何找到以特定关键字(如“test”)开头的文件名的索引节点号?

我们假设有名为: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”的任何内容,然后是一位数字,之后的任何内容。

相关内容