Command-Line

如何從 Unix 命令的日誌中辨識文件名和目錄?

  • January 25, 2021

我有一個 Unix 命令數據集作為終端的輸入,我想用它們來比較使用者行為。

不同的使用者與不同的目錄和文件互動(它們都在不同的電腦上)。我想看看哪些使用者使用相同的命令,具有相同的參數/參數(但我很高興有不同的文件名/目錄作為參數)。

從邏輯上講,為了實現這一點,我應該從數據集中刪除文件名和目錄,然後尋找相似之處,但這是我的問題。

如何將文件名和目錄辨識為命令行參數/參數?

例如給定 ls -F thesis

我如何辨識thesis為文件/目錄(我理解ls在這種情況下的語義,但我看的更廣泛,我不知道發出的命令的語義)

你不能。

您需要知道執行的每個命令的語義。

在命令行上給命令的任何參數都只是傳遞給程序,然後它可以自由地實現,但感覺如何。該程序甚至不必在解釋參數的方式上保持一致(如果這樣做,它可能不是很有用)。

您還需要考慮某些使用者可能已經處理了不存在的文件 - 無論是作為拼寫錯誤(並且這些錯誤也可能出現在程序名稱中),試圖查看某個文件是否存在,誤導您或出於其他原因. 我想我什至見過根據給定參數是否是現有文件的名稱而表現不同的程序,但在這兩種情況下都做了一些事情。

ctrl-alt-delor 建議使用的製表符完成數據基本上是一種編碼許多(常用)命令語義的方式,但它們可能(我沒有花太多時間查看這些)取決於什麼 shell使用者曾經,並且可能從那以後改變。因此,雖然這可能提供了一種前進的方式,但它並非沒有問題。

引用自:https://unix.stackexchange.com/questions/630892