如何找到以特定关键字(如“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”的任何内容,然后是一位数字,之后的任何内容。