我需要将 tar 文件中的单个文件提取到另一个目录。
到目前为止我有这个:
此操作将单个文件提取到同一目录:
tar -xvf filename.tar ./file.txt
Run Code Online (Sandbox Code Playgroud)
我试过了,但没用
tar -xvf filename.tar /home/dir ./file.txt
Run Code Online (Sandbox Code Playgroud)
或这个:
tar -xvf filename.tar -C /home/dir ./file.txt
Run Code Online (Sandbox Code Playgroud) 在提取带有扩展名的文件时,.gz我们使用了 tar -xzf,而在提取带有扩展名的文件时,.bz2我们使用了-xjf. 这些有什么区别?
有时使用的组合是-tf,-xf等等等等。如何确定哪种组合应该与哪种文件一起使用?这可能是一个基本问题,但我需要对此进行解释。
根据 GNU tar 手册页,CACHEDIR.TAG可以通过指定命令行选项来排除包含文件的目录,例如--exclude-cache.
这似乎不会发生。
$ mkdir -pt/a/b/c $ touch t/a/b/foo t/a/b/CACHEDIR.TAG $ tar --exclude-caches-all -cvf /dev/null t 吨/ 吨/年/ 标签/ t/a/b/c/ t/a/b/CACHEDIR.TAG t/a/b/foo
我想加快我的归档操作,我通常会进行 23 GiB(一张蓝光)备份。
我发现了这个:How to do Large fileparallel Encryption using GnuPG and GNU parallel?
因为我根本不理解这段代码(从未使用过parallel):
tar --create --format=posix --preserve-permissions --same-owner --directory $BASE/$name --to-stdout . |
parallel --pipe --recend '' --keep-order --block-size 128M "xz -9 --check=sha256 |
gpg --encrypt --recipient $RECIPIENT;echo bLoCk EnD" |
pv > $TARGET/$FILENAME
Run Code Online (Sandbox Code Playgroud)
我想问一下有没有人可以帮我解析一下。谢谢。
我正在尝试 tar 当前目录并流式传输到标准输出(最终到 Amazon S3)...我有这个命令:
tar -cf - .
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
tar:拒绝将存档内容写入终端(缺少 -f 选项?)tar:错误不可恢复:现在退出
据我所知 -f - 表示该文件是标准输出,尽管-f /dev/stdout可能更明确。
有谁知道如何正确地形成命令?
我有以下目录结构:
/home/
|__dirA/
|__ dir_to_zip/
|__ file1.txt
|__ file2.txt
|__ ...
|__dirB/
|__ dir_to_save_in/
|__dirC/
backup_zip_script.sh
Run Code Online (Sandbox Code Playgroud)
backup_zip_script.sh包含(除其他外)命令(src):
tar -czvf /home/dirB/dir_to_save_in/backup.tar.gz /home/dirA/dir_to_zip
Run Code Online (Sandbox Code Playgroud)
也就是说:我希望压缩目录~/dirA/dir_to_zip,将压缩的存档保存在 中~/dirB/dir_to_save_in/,并使用位于 中的脚本来执行此操作~/dirC/。
上面的命令tar可以工作,但是解压缩保存的存档会产生完整的目录结构:
/home/
|__dirA/
|__ dir_to_zip/
|__ file1.txt
|__ file2.txt
|__ ...
Run Code Online (Sandbox Code Playgroud)
当我只想:
dir_to_zip/
|__ file1.txt
|__ file2.txt
|__ ...
Run Code Online (Sandbox Code Playgroud)
如何将目录压缩到另一个位置(这样我就必须指定完整的绝对路径),但只压缩该目录而不压缩它之前的所有级别?
我也可以简单地使用cd /home/dirA/ && tar......但我更愿意看看是否还存在其他解决方案。
如果我有一个压缩存档(例如archive.tar.xz),我可以将其解压缩并使用tar xf archive.tar.xz. 据我了解,这在技术上是两个步骤:解压缩archive.tar,然后“拆分”(为了需要一个更好的词)archive.tar到原始文件中。
有没有办法解压离开后停下来archive.tar?在这种情况下,我可以使用xz -d,但我更喜欢使用tar,因为这并没有xz特别限制我。tar xf似乎有(一些)智能来确定应用什么减压,我想保留它。
到目前为止,我能想到的最好的解决方案是紧随tar xf archive.tar.xz其后tar cf [...]。
我想从登录的 shell 中获取 tar 并将该 tar 文件带到远程主机,然后在那里提取 tar 文件。我有以下命令,但 tar 本身没有创建。
time=`date`
timestamp=`date +%F_%H%M`
backpfilename=db${timestamp}.tar.gz
cd /home/aryan/ && tar -cvzf $backupfilename | ssh root@remoteserver 'cd /home/aryantest/ && tar -xvzf $backpfilename'
Run Code Online (Sandbox Code Playgroud) 我在这里看到tar用于将多个文件合并为一个。那么为什么我经常在tar 中看到一个zip文件呢?
示例:archive.zip.tar
我想在我的根服务器上安装一个 teampeak,但下载 tar 文件后,我无法解压它。
我使用命令
tar -xzvf teamspeak3-server_linux_amd64-3.0.12.2.tar.bz2
Run Code Online (Sandbox Code Playgroud)
我也知道你在之前不需要连字符/破折号,xzvf但我使用它。
我仍然收到一条消息,指出该文件不存在,尽管它在我检查时已列出 ls
我收到此错误:
tar (child): v: Funktion open fehlgeschlagen: Datei oder Verzeichnis nicht gefun den
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
Run Code Online (Sandbox Code Playgroud)