对话 UNIX: 关于 inode( 三 )


# ls
- -- -p fileA fileB fileC fileD
fileE fileF fileG fileH fileI fileJ fileK fileL
使用 ls -i 命令,您可以看到文件名称旁边的索引编号,如清单 4 中所示 。现在,您已经知道了文件的索引编号,那么就可以很容易地操作该文件了 。
清单 4. 查看文件的索引编号
# ls –i
3898838991 -p 38984 fileC 38982 fileF 38977 fileI 38978 fileL
38989 - 38980 fileA 38986 fileD 38983 fileG 38987 fileJ
38990 -- 38979 fileB 38976 fileE 38985 fileH 38981 fileK
find 命令
使用 Unix find 命令,您可以完成使用 ls 命令所开始的工作 。对于要进行操作的文件,您已经知道了它们的索引编号,那么就可以开始进行相应的操作了!
要删除看似无名的文件,您只需要使用 find 和 -inum 开关对索引编号和文件进行定位 。然后,在找到该文件之后,使用 find 和 -exec 开关删除该文件:
# find . -inum 38988 -exec rm {} ;
要对该文件进行重命名,可以再次进行相同的操作,但这一次使用 mv 而不是 rm:
# find . -inum 38989 -exec mv {} fileM ;
为了验证取得了预期的结果,只需要再次使用 ls -i 命令:
# ls -i
38990 -- 38979 fileB 38976 fileE 38985 fileH 38981 fileK
38991 -p 38984 fileC 38982 fileF 38977 fileI 38978 fileL
38980 fileA 38986 fileD 38983 fileG 38987 fileJ 38989 fileM
fsck 命令
不幸的是,硬件设备不可能一直使用下去,系统可能会在使用多年后出现故障 。当发生这种情况,以及由于电源故障或者某些其他问题而导致操作系统异常关闭的时候,您可能会在还原系统备份时碰到一些在崩溃期间处于打开状态的文件,并且现在需要对其加以处理 。此时,您可能会碰到一些需要修复 inode 或者存在错误的消息 。如果发生这种状况,那么 fsck 命令可以用来救急!您可以使用 fsck 来修复文件系统或者修正受损的 inode ,而不是还原系统、或者甚至重新构建操作系统 。
下面的命令可以尝试修复逻辑卷 /dev/hd1:
# fsck –p /dev/hd1 –y
通过使用 fsck 命令,您还可以缩小受损 inode 的搜索范围 。如果您正在搜索一个特定的 inode ,那么可以使用带 -ii-NodeNumber 开关的 fsck 命令 。
结束语
如果没有 inode ,那么 UNIX 中的文件和目录将根本无法使用 。希望在阅读完本文之后,您可以更好地了解 inode 、它们对于 AIX 系统的重要性,以及如何管理它们 。您可能会对 df 命令的看法大为改观 。

推荐阅读