Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何在不提取整个文件的情况下更改存档(.ear)文件中的文件_Linux_File_Archive_Binaryfiles_Ear - Fatal编程技术网

Linux 如何在不提取整个文件的情况下更改存档(.ear)文件中的文件

Linux 如何在不提取整个文件的情况下更改存档(.ear)文件中的文件,linux,file,archive,binaryfiles,ear,Linux,File,Archive,Binaryfiles,Ear,我有一个.ear文件(像tar/zip这样的存档文件),里面有一个我想更改的文件 例如,myfile.ear包含1.txt,我想将1.txt更改为2.txt,还可能更改1.txt中的一些内容(如sed所做的) 我真的想避免提取myfile.ear,更改文件并再次压缩 有人知道在linux中实现这一点的方法吗 如果不可能,我也想知道原因 谢谢。EAR文件只是JAR文件,而JAR文件只是ZIP文件。ZIP格式IIRC包含交错的元数据和数据,因此更改一个文件(可能比要替换的文件大/小)可能不合适(或留

我有一个
.ear
文件(像tar/zip这样的存档文件),里面有一个我想更改的文件

例如,
myfile.ear
包含
1.txt
,我想将
1.txt
更改为
2.txt
,还可能更改
1.txt
中的一些内容(如
sed
所做的)

我真的想避免提取
myfile.ear
,更改文件并再次压缩

有人知道在linux中实现这一点的方法吗

如果不可能,我也想知道原因


谢谢。

EAR文件只是JAR文件,而JAR文件只是ZIP文件。ZIP格式IIRC包含交错的元数据和数据,因此更改一个文件(可能比要替换的文件大/小)可能不合适(或留下间隙),因此在所有实际操作中,在进行修改时必须重写该文件。

EAR文件只是JAR文件,只是ZIP文件。ZIP格式IIRC包含交错的元数据和数据,因此更改一个文件(可能比要替换的文件大/小)可能不合适(或留下间隙),因此在所有实际操作中,在进行修改时必须重写该文件。

是否可以只提取特定文件,修改并重新放回?或者我必须重新压缩所有内容吗?我使用过的任何ZIP util都会通过这些修改重新创建存档。那么是否可以只提取特定的文件,修改它,然后再放回去?或者我必须重新压缩所有内容吗?我使用过的任何ZIP util都会通过这些修改重新创建存档。