如何将命令输出写入文本文件但不执行它们?

如何将命令输出写入文本文件但不执行它们?

如何在不执行命令的情况下将任何命令的输出重定向到文本文件?例如,我想在运行之前确认要压缩的文件

zip -r point_clouds.zip data/*/*/point_clouds

通过将输出写入文本文件,例如

zip -r point_clouds.zip data/*/*/point_clouds | tee test.txt

或删除操作

find . -name "*.tif" -type 'f' -size -160k | tee test.txt

答案1

为了实现命令的一般功能,您需要检查命令是否提供了允许其模拟操作而不是执行操作的标志。例如,使用apt,您有一个-s--simulate标志。使用rsync,您有--dry-run选项。这样的标志告诉程序“假装”执行任务,但实际上并不执行,因此只需报告即可。

不确定是否zip有这样的选项。您可能需要有效地创建 .zip 文件,最终在需要时放在临时文件夹中,以获取将要(正在)压缩的文件列表。另一方面,只需一个ls data/*/*/point_clouds就可以检索将要压缩的文件列表。

举个find例子:您自己已经给出了答案。目前,您只是列出了文件列表。如果您想有效地删除它们,可以添加选项--exec rm

相关内容