这将保存在我计算机上的文件中,但我的老师也需要在他的计算机上进行编译。这是到目前为止的代码。我正在尝试将三个文件压缩为一个 TAR 文件。
#!/bin/bash
dd if=/dev/zero of=file.txt bs=1701KB count=1
dd if=/dev/zero of=filee.txt bs=1780KB count=1
dd if=/dev/zero of=fileee.txt bs=1800KB count=1
echo 'i dont really care at all about any of this' >> file.txt
echo 'just trying things out for fun' >> filee.txt
echo 'this is really boring i dont like it' >> fileee.txt
tar -czvf archive.tar.gz /home/melwhiteastonia/file.txt /home/melwhiteastonia/filee.txt /home/melwhiteastonia/fileee.txt
gzip -l archive.tar.gz
答案1
使用-C
选项tar
更改到相关工作目录并按名称指定文件:
tar -C /home/melwhitesastonia -cvzf archive.tar.gz file.txt filee.txt fileee.txt
$PWD/archive.tar.gz
请注意,如果您不希望存档位于同一目录中,您可能需要指定存档的绝对路径(例如, )。另请注意,您不需要对其进行 gzip,因为-z
tar 的标志已经做到了这一点。
此外,您可能希望将文件放置在适当命名的目录中,而不是将它们直接放置在存档的根目录中,因为这是习惯做法,对用户来说更好。您可以通过指定目录名称而不是文件并从选项中删除该目录组件来实现此目的-C
。
答案2
通过论证--transform
你可以做类似的事情
tar -czv --transform 's:home/melwhiteastonia/::g' -f archive.tar.gz \
/home/melwhiteastonia/file.txt \
/home/melwhiteastonia/filee.txt \
/home/melwhiteastonia/fileee.txt
正则表达式是home/melwhiteastonia/
因为无论如何tar
都会删除前导。/