Solaris

如何在 Solaris 中使用管道命令執行 truss

  • December 13, 2011

如何使用管道輸出執行 truss 命令?

例如。

# truss -leDo /tmp/truss.out tar cvf - dirs/ | gzip -1 > archive.tar.gz

我只得到 truss 中的“tar”輸出,而不是 gzip!

你試過使用-f嗎?它告訴 truss 跟隨原始命令產生的任何孩子。我不確定這是否會起作用,因為 tar 命令實際上並沒有生成 gzip 命令。

另一個可能有效的選項是:

truss -leDo /tmp/truss.tar.out tar cvf - dirs/ | truss -leDo /tmp/truss.gzip.out gzip -1 > archive.tar.gz

但是,我不知道它是否會起作用,但這次是因為我不知道 truss 對 STDIN 有什麼作用。

如果這兩個都失敗了,您可能會通過使用該-f選項並將它們都包裝在一個外殼中來到達某個地方:

truss -leDo /tmp/truss.out ( tar cvf - dirs/ | gzip -1 > archive.tar.gz )

這個需要 bash 但可以修改它以在其他 shell 下執行。

所有這一切都假設您希望tarandgzip命令分開。如果您不需要它,您可以使用-ztar 選項讓它進行壓縮。

引用自:https://serverfault.com/questions/340367