第239页 链接与文件
Sky (好好读书,认真笔记!)
- 章节名:链接与文件
- 页码:第239页
关于Unix系统的(inode的)链接,几乎可以得出这样一个结论:任何目录的链接的个数都等于目录下子目录的个数+2(2来自目录本身对.的引用和目录父目录对目录的引用)。 可以使用Perl中的link操作符来增加inode的链接数
link 'chicken', 'egg' or warn 'can't link chicken to egg : $!\n'; # 和Unix下ln chicken egg效果一样以上在Unix系统中建立的硬链接,相当于为同一块物理空间建立了多个索引别名。这样在修改chicken的内容时,egg也自然得到了修改,在删除chicken时,依然可以通过egg访问原来chicken中的内容,除非chicken和egg都被删除了,他们对应的同一块inode才会被标识为可以废弃的。当然,硬链接因为本身的特点,有几条系统级别的限制: 1、不能跨挂载卷做硬链接(这条也能保证把物理介质转移到另一台机器时,原来的硬链接不会受到影响) 2、目录是不能建立硬链接的。所以目录的链接数是不能被增加的。 上面的硬链接的这些限制可以通过软连接(符号链接)跳过。因为符号链接并没有增加原来inode的链接数量,他仅仅在OS到符号链接的地方来找文件时告诉OS,请你去符号链接指向的那个地方去找你要的文件。因此,符号链接不仅可以跨挂载卷链接,甚至可以指向一个压根就不存在的文件。
symlink 'dodgson', 'carroll' or warn "Can't symlink dodgson to carroll\n"; #same as : ln -s dodgson carroll ##如果要取得符号链接指向的真实位置,可以使用readlink操作符,但是这个操作符的参数不是符号链接时,将返回undef。 my $where = readlink 'carroll'; #dodgson
Sky对本书的所有笔记 · · · · · ·
-
第231页 目录句柄
directory handle的概念和文件句柄的概念非常类似,就连Perl中提供的操作符的关键字都看上去...
-
第233页 递归访问目录
这节其实没有看到啥“地柜访问目录”,不过到时粗略提到了find2perl这个工具,提的很粗,关于...
-
第239页 链接与文件
-
第242页 创建和删除目录
创建目录操作符mkdir和Unix下的关键字一模一样。当然用法上,前者更像是函数: mkdir 'fred',...
-
第244页 修改权限
Perl中的chmod和Unix系统的chmod语义完全一样,使用的例子如下: chmod 0755, 'fred', 'barne...
说明 · · · · · ·
表示其中内容是对原文的摘抄