嗨,我有一个简单的问题,但没有找到为什么它的happenig,
我只想用昨天下载的文件做一个tar。我使用 find 来获取所有文件名,但是当我尝试使用 tar 和 find 来生成tar时,它会生成一个包含目录中所有项目的tar文件。让我给予个例子:
当我运行find -mtime 0
时,它会给我一些昨天下载的文件
./linuxmint-19-xfce-32bit.iso
./utserver.tar.gz
./nf_9866.pdf
./-@ut c4d 22.torrent
字符串
但是当我使用find -mtime 0 | xargs tar -zcvf teste.tar.gz -T -
时,它会生成所有文件的tar
./Modelo_KCS_-_Devolucao_de_Compra2.doc
./Modelo_KCS_-_Devolucao_de_Compra2(2).doc
./Pref.25-04-20231-3.pdf
./Centro_Diag.14-04-20231.pdf
./OC 2290.pdf
./Configuracao_Cliente.docx
./Twine.html
./empresa.ods
./file22.xlsx
[...]
型
我做错了什么?
我尝试了不同的方法来获取文件的日期一样`
find -newermt 2023-06-30 ! -newermt 2023-07-01 | xargs tar -cvzf teste.tar.gz
find /home/user/Downloads/ -type f -newermt 2023-06-29 ! -newermt 2023-06-30 | tar -czvf teste.tar.gz`
型
但两种方法都不管用
1条答案
按热度按时间vltsax251#
当
tar
已经从 stdin 读取文件名时,不需要xargs
。这应该可以创建一个tarball,其中包含您昨天下载的内容:字符串
如果您仍然遇到问题,很可能是查找结果不正确。如果您尝试相同的操作,但使用文件名通配符,会发生什么:
型
您也可以通过两个步骤来验证您的列表:
型
如果您的tarball中有任何内容不在
/tmp/list.txt
中,则使用列表的内容作为参数:型