创建不包含目录的 tar 文件

fix*_*it7 3 tar ubuntu-mate 20.04

我对 tar 的使用相当陌生,过去曾使用过 zip 文件。

我只想创建 tar 文件而不包含目录。

我去了这里,但发现它有点令人困惑。

https://www.baeldung.com/linux/tar-archive-without-directory-struct

# Backup crontab
crontab -l > /home/andy/bin/crontab_backup.txt
tar -cvf /home/andy/bin/crontab_backup.tar /home/andy/bin/crontab_backup.txt
Run Code Online (Sandbox Code Playgroud)

mur*_*uru 8

对于您的具体示例,如果您在命令中省略该路径,您将获得所需的结果cd/home/andy/bin

# Backup crontab
cd /home/andy/bin
crontab -l > crontab_backup.txt
tar -cvf crontab_backup.tar crontab_backup.txt
Run Code Online (Sandbox Code Playgroud)

这是您链接到的页面中3.2 在目标目录中使用 tar 命令中的建议,可能是解决此特定问题的最简单方法。

相当于3.1。对单个目录使用 -C 选项将是:

crontab -l > /home/andy/bin/crontab_backup.txt
tar -cvf /home/andy/bin/crontab_backup.tar -C /home/andy/bin crontab_backup.txt
Run Code Online (Sandbox Code Playgroud)

链接页面中没有提到另一个选项:--transform,它允许我们使用s/<pattern>/<replacement>/像 in 那样的表达式sed

crontab -l > /home/andy/bin/crontab_backup.txt
tar -cvf /home/andy/bin/crontab_backup.tar /home/andy/bin/crontab_backup.txt --transform 's,.*/,,'
Run Code Online (Sandbox Code Playgroud)