Solaris
如何在 Solaris 中使用管道命令執行 truss
如何使用管道輸出執行 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 下執行。
所有這一切都假設您希望
tar
andgzip
命令分開。如果您不需要它,您可以使用-z
tar 選項讓它進行壓縮。