从标准输入创建 tar 文件

xoi*_*oid 2 pipe tar

我想即时将 mysql 备份到磁带。有些喜欢

mysqldump|tar --filename=mysqlbackup.sql > /dev/tape
Run Code Online (Sandbox Code Playgroud)

我希望磁带的内容是 tar 文件,而该文件的内容是“mysqldump.sql”

所以命令“tar -t < /dev/tape”应该输出

mysqldump.sql
Run Code Online (Sandbox Code Playgroud)

我不想首先将 mysqldump 保存到文件,因为我没有空间和 IO 资源。我想即时完成。

我不想要“mysqldump > /dev/tape”,因为没有元信息,也无法知道磁带有任何内容/

xoi*_*oid 6

用户 parkydr 给出了更好的答案:

您无法从 stdin 创建 tar 文件。tar 中的每个文件都有一个包含文件长度的头,因此 tar 在写入头之前必须知道有多少数据。– 帕基德