这是一个简单的问题,但找不到答案,我找到并尝试了tee output.txt
但system_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