我只是很惊讶,一直以来,互联网上都没有关于如何做到这一点的信息。或者我只是不擅长看。假设 change 具有以下结构:
dist/file1
dist/file2
dist/file3
我希望 dist 中的所有 3 个文件都在存档中。可以这样做:
tar -cf dist.tar dist
但是 dist 目录本身会进入存档,我不想要这个,我只需要存档中没有目录的文件。我试过了:
tar -cf dist.tar dist/
tar -cf dist.tar dist/*
cd dist; tar -cf dist.tar ./
但这一切都不起作用或没有做我需要的。如果不列出所有文件,是否有足够的方法来做到这一点?
对于普遍接受的做法,确实没有足够的方法来做不合适的事情(用俄语 - 不合适)。
要在解压缩时跳过几级目录,请使用该选项
--strip-components=число。这与通常的做法相当一致。示例:内部有一个具有以下结构的存档:
将文件提取到例如当前目录而不创建
каталога1:如果您仍然需要做一些与普遍接受的做法不太一致的事情,那么在创建存档时,您可以使用例如选项
-T файл.со.списком,仅将带有列表的文件描述符作为文件传递(如果您使用的 shell使用可以做到这一点。例如,bash程序可以):如果您使用的 shell 无法传递文件描述符,您可以提前准备列表(并
-T список在选项中使用列表指定此文件的名称),或者动态构建列表并将其传递给标准输入上的 tar (指定选项中的文件名):--T список