问:如何在 OSX El Capitan 上的终端中使用命令保存终端输出?

问:如何在 OSX El Capitan 上的终端中使用命令保存终端输出?

这是一个简单的问题,但找不到答案,我找到并尝试了tee output.txtsystem_profiler > output.txt没有成功,他们保存了空白文本文件。如何在 OSX El Capitan 上的终端中使用命令保存终端输出?

答案1

假设command这是您想要运行的命令,您可以使用以下命令将其输出传输到 output.txt 中:

$ command > output.txt

或者

$ command | tee output.txt

如果这不起作用,可能是因为输出不是打印在 上,stdout而是打印在 上stderr。管道>是隐式书写的,1>意思是“管道stdout到...”。
如果你也想通过管道传输stderr到文件,你可以使用

$ command >output.txt 2>&1

这会将所有输出通过管道传输stderr到文件描述符1(= stdout),然后再通过管道传输到文本文件中。

答案2

Syntex:

$command > /output/file/location

例如:假设您想列出 /home/jackson 的所有文件和目录并将其结果保存到 /home/jackson/list.txt,那么命令将是--

$ls /home/jackson > /home/jackson/list.txt

但请记住,如果文件 /home/jackson/list.txt 已经存在并包含信息,则前面的命令将删除您之前的信息并写入您的命令输出。因此,如果您不想删除之前的信息,请使用“>>”而不是“>”。所以您的命令将是。

$ls /home/jackson >> /home/jackson/list.txt

希望这会有所帮助。

答案3

问:如何在 OSX El Capitan 上的终端中使用命令保存终端输出?

答案:只需给你的计算机足够的时间来完成该特定命令(1 分 30 秒左右)。

您的命令应该可以顺利运行。


在我的 Mac 上,命令如下:

system_profiler > output.txt

..大约需要1分30秒才能完成。


如果需要,系统分析器还具有格式化选项和时间限制。

system_profiler -xml -timeout 3 > textfile.xml
cat ./textfile.xml

参考:

man system_profiler
system_profiler -usage

结果(用 nl 统计行数)。该文件与命令相同,约 52000 行。

system_profiler > 输出.txt nl 输出.txt

     1  Accessibility:

     2      Accessibility Information:

     3        Cursor Magnification: Off
     4        Display: Black on White
     5        Flash Screen: Off
     6        Mouse Keys: Off
     7        Slow Keys: Off
     8        Sticky Keys: Off
     9        VoiceOver: Off
    10        Zoom Mode: Full Screen
...
...

 51937            Wake On Wireless: Supported
 51938            AirDrop: Supported, Channel 0
 51939            Status: Off

相关内容