在完成标准输出后,如何将“find”或“ls”的结果通过管道传输到文件?

在完成标准输出后,如何将“find”或“ls”的结果通过管道传输到文件?

所以出于某种原因,当我做类似的事情时

find $PWD -type f > listoffiles.txt

要在当前目录中创建文件列表并将其保存到列表中,该文件“列表文件.txt”它本身以某种方式包含在其中,这告诉我它是在管道的 STDOUT 之前实例化的。我究竟怎样才能让它不这样做呢?

答案1

您可以使用spongeMoreUtils:

find . -type f | sponge listoffiles.txt

有关的:

答案2

输出文件是在 find 运行之前创建的。您可以在其他地方创建它,例如:

$ find $PWD -type f > /tmp/listoffiles.txt

或者grep它消失:

$ find $PWD -type f | grep -v "^..listoffiles.txt" > /tmp/listoffiles.txt

或要求find忽略它:

$ find $PWD -type f -not -name listoffiles.txt > /tmp/listoffiles.txt

相关内容