我正在寻找tar目录中最新文件的最简单方法。下面的命令找到正确的文件,但我不知道如何从输出焦油它:BASH:在进度目录中的最新文件的tar cpf
find /home/user -type f -printf '%[email protected] %p\n' | sort -n | tail -1 | cut -f2- -d" "
而且我也必须输出的进展。
我正在寻找tar目录中最新文件的最简单方法。下面的命令找到正确的文件,但我不知道如何从输出焦油它:BASH:在进度目录中的最新文件的tar cpf
find /home/user -type f -printf '%[email protected] %p\n' | sort -n | tail -1 | cut -f2- -d" "
而且我也必须输出的进展。
要创建的GNU tar追加一个tar文件:
| xargs tar --checkpoint=1024 --checkpoint-action=ttyout='%u KB approximately written\r' -cf file.tar
更新: 的GNU tar与进度条(与pv
):
find /home/user -type f -printf '%[email protected] %s %p\n' | sort -n | tail -1 | while read t s p; do tar -cf - "$p" | pv -s "$s" > file.tar; done
输出(例如):
400MB 0:00:22 [74.2MB/s] [========================> ] 77% ETA 0:00:15
您可以管它:
find /home/user -type f -printf '%[email protected] %p\n' | sort -n | tail -1 | cut -f2- -d" " | tar -rf recent.tar
,然后创建一个压缩格式
gzip recent.tar
或旧的包扩展
gzip -c recent.tar > recent.tgz
请注意tar
这-r
选项用于附加文件在你的包
你好,非常感谢你的帮助。管道命令似乎可以工作,但它创建了10Kb的文件,当然,这是不能使用的。我如何为整个文件创建tar? – faceless
这将tar整个文件,这个命令:'tar -rf'没有指令来分割文件。 – Unwastable
尊敬的先生, 您的解决方案适用于我。感谢那。但是,我还有两个问题: 1-执行命令会输出以下消息:tar:从成员名称中删除前导'/'。信息的意义是什么?它以某种方式删除文件的路径吗? 2-我可以在哪里了解有关命令语法的更多信息? – faceless
1:[默认情况下,GNU tar会在输入或输出中删除前导'/'。有一个关闭此行为的选项。](https://www.gnu.org/software/tar/manual/html_node/absolute.html)2:[关于检查点的更多信息](https://www.gnu。 org/software/tar/manual/html_section/tar_26.html#checkpoints) – Cyrus
谢谢,max赞赏!!最后你有没有想到如何在这个过程中添加进度条? – faceless