PHP:创建一个包含符号链接和空目录的tar归档文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP:创建一个包含符号链接和空目录的tar归档文件相关的知识,希望对你有一定的参考价值。
我想要一个简单的php脚本(无外部依赖项),该脚本能够创建目录的逐字存档。该目录可以包含任何有效内容,包括空目录和断开的符号链接。
输入目录如下:
.:
total 12
-rw-r--r-- 1 101633 1014 1502 Apr 23 17:21 a.php
drwxr-xr-x 2 101633 1014 6 Apr 23 16:10 empty-directory
-rw-r--r-- 1 101633 1014 0 Apr 23 15:52 emtpy-file
-rw-r--r-- 1 101633 1014 7 Apr 23 15:52 file-w-contents
drwxr-xr-x 2 101633 1014 18 Apr 23 16:39 nonempty-dir
drwxr-xr-x 2 101633 1014 6 Apr 23 15:52 symlink-target-dir
lrwxrwxrwx 1 101633 1014 18 Apr 23 16:12 symlink-to-dir -> symlink-target-dir
lrwxrwxrwx 1 101633 1014 10 Apr 23 16:14 symlink-to-emtpy-file -> emtpy-file
lrwxrwxrwx 1 101633 1014 11 Apr 23 16:25 symlink-to-nonexistent -> nonexistent
./empty-directory:
total 0
./nonempty-dir:
total 0
-rw-r--r-- 1 101633 1014 0 Apr 23 16:39 file
./symlink-target-dir:
total 0
“对此的'官方'解决方案正在使用Phar,但它省略了符号链接和空目录,并且在断开的符号链接上引发了异常(看起来它想默认遵循它们-我发现没有办法禁用此行为)。] >
$phar = new PharData('output.tar'); $phar->buildFromDirectory("/z");
结果:
Fatal error: Uncaught RuntimeException: phar error: unable to open file "symlink-to-nonexistent" to add to phar archive in /z/a.php:9
删除悬空的符号链接后,将创建以下tar文件:
-rw-r--r-- 0/0 1502 2020-04-23 17:37 a.php -rw-r--r-- 0/0 0 2020-04-23 17:37 emtpy-file -rw-r--r-- 0/0 7 2020-04-23 17:37 file-w-contents -rw-r--r-- 0/0 0 2020-04-23 17:37 nonempty-dir/file -rwxr-xr-x 0/0 0 2020-04-23 17:37 symlink-target-dir
(请注意,包含了空的'symlink-target-dir,尽管不是目录,而是常规文件。)
有人知道一个小的独立库能够创建包括所有目录和链接的正确的tar存档吗?
我想要一个简单的PHP脚本(无外部依赖项),该脚本能够创建目录的逐字存档。该目录可以包含任何有效内容,包括空目录...
答案
由于找不到任何满足我需求的内容,所以我决定创建自己的版本。
以上是关于PHP:创建一个包含符号链接和空目录的tar归档文件的主要内容,如果未能解决你的问题,请参考以下文章