Linux 使用find命令查找、压缩和删除文件时出错

Linux 使用find命令查找、压缩和删除文件时出错,linux,shell,find,Linux,Shell,Find,我需要找到文件,压缩和删除它们 示例:在当前目录中,我有文件“log.0”、“log.1”和“log.2”。如果我跑步: find . -type f -exec tar -zcvf "logs.tar.gz" "{}" \; 然后解压缩文件logs.tar.gz,我将只得到文件log.0 如何压缩在find命令中找到的所有文件?尝试以下操作: find . -type f -print0 | tar -zcvf logs.tar.gz --null --files-from - --remo

我需要找到文件,压缩和删除它们

示例:在当前目录中,我有文件“log.0”、“log.1”和“log.2”。如果我跑步:

find . -type f -exec tar -zcvf "logs.tar.gz" "{}" \;
然后解压缩文件
logs.tar.gz
,我将只得到文件
log.0

如何压缩在
find
命令中找到的所有文件?

尝试以下操作:

find . -type f -print0 |
tar -zcvf logs.tar.gz --null --files-from - --remove-files
试试这个:

find . -type f -print0 |
tar -zcvf logs.tar.gz --null --files-from - --remove-files

很有效,谢谢。为什么使用参数--null和--files from?
find-print0
将文件名以零结尾打印到stdout
tar--files from-
从stdin读取要压缩的文件,而
--null
告诉您文件名以零结尾。零终止是一种安全功能,可以正确处理带有空格/等的文件名。谢谢。为什么使用参数--null和--files from?
find-print0
将文件名以零结尾打印到stdout
tar--files from-
从stdin读取要压缩的文件,而
--null
告诉您文件名以零结尾。零终止是一种安全功能,可以正确处理带有空格/等的文件名。