Archive::Tar::File - 从 Archive::Tar 中提取的内存中文件的子类
my @items = $tar->get_files;
print $_->name, ' ', $_->size, "\n" for @items;
print $object->get_content;
$object->replace_content('new content');
$object->rename( 'new/full/path/to/file.c' );
Archive::Tar::Files 为内存中提取的文件提供了一个简洁的、面向对象的层级。它主要在 Archive::Tar 内部使用以整理代码,但用户也可以使用此 API。
此包中的许多方法都是对 tar 头文件中各种字段的访问器
文件的名称
文件的模式
拥有该文件的用户 ID
拥有该文件的组 ID
文件大小(字节)
修改时间。如果需要,在 MacOS 上调整为 mac-time
tar 头部的校验和字段
文件类型 - 数字,但可与导出常量比较 - 请参阅 Archive::Tar 的文档
如果文件是符号链接,则指向的文件
Tar 魔术字符串 - 对大多数用户来说没有用
Tar 版本字符串 - 对大多数用户来说没有用
拥有该文件的用户名
拥有该文件的组名
特殊文件情况下的设备主编号
特殊文件情况下的设备次编号
如果有的话,任何要添加到提取路径的目录
原始 tar 头部 - 对大多数用户来说没有用
从现有文件返回一个新的 Archive::Tar::File 对象。
失败时返回 undef。
从数据返回一个新的 Archive::Tar::File 对象。
$path
定义文件名(不需要存在),$data
定义文件内容,$opt
是一个指向属性哈希的引用,这些属性可用于覆盖默认属性(tar 头部中的字段),这些属性在上面的访问器部分中描述。
失败时返回 undef。
从原始 512 字节 tar 存档块返回一个新的 Archive::Tar::File 对象。
失败时返回 undef。
提取此对象,可选地提取到备用名称。
有关详细信息,请参阅 Archive::Tar->extract_file
。
成功时返回 true,失败时返回 false。
返回 tar 头部的完整路径;这基本上是 `prefix` 和 `name` 字段的串联。
在 Archive::Tar 内部读取 tar 文件时完成:验证头部的校验和以确保 tar 文件的完整性。
成功返回 true,失败返回 false。
返回一个布尔值,指示当前对象是否包含内容。一些特殊文件,比如目录等,永远不会包含任何内容。此方法主要用于确保在查看对象的內容时不会收到未初始化值的警告。
返回内存中文件的当前内容。
以标量引用形式返回内存中文件的当前内容。普通用户不需要这个,但如果你在 tar 归档文件中处理非常大的数据文件,它会节省内存,因为它会通过引用传递内容,而不是先复制一份。
用新内容替换文件的当前内容。这只会影响内存中的归档文件,直到你写入磁盘,不会影响磁盘上的版本。
成功返回 true,失败返回 false。
将当前文件重命名为 $new_name。
请注意,你必须为 $new_name 指定一个 Unix 路径,因为根据 tar 标准,归档文件中的所有文件都必须是 Unix 路径。
成功时返回 true,失败时返回 false。
将 $file 的模式更改为 $mode。模式可以是字符串或数字,无论是否给出前导 0,都将被解释为八进制。
成功时返回 true,失败时返回 false。
将 $file 的所有者更改为 $user。如果给出 $group,则也会更改 $group。你也可以传递一个用冒号分隔用户和组的单个参数,例如 'root:wheel'。
成功时返回 true,失败时返回 false。
要快速检查 `Archive::Tar::File` 对象的类型,可以使用以下方法
如果文件类型为 file
,则返回 true。
如果文件类型为 dir
,则返回 true。
如果文件类型为 hardlink
,则返回 true。
如果文件类型为 symlink
,则返回 true。
如果文件类型为 chardev
,则返回 true。
如果文件类型为 blockdev
,则返回 true。
如果文件类型为 fifo
,则返回 true。
如果文件类型为 socket
,则返回 true。
如果文件类型为 LongLink
,则返回 true。在成功 read
后不应该发生。
如果文件类型为 Label
,则返回 true。在成功 read
后不应该发生。
如果文件类型为 unknown
,则返回 true。