Lsof
lsof:顯示以讀寫方式打開的文件
當我嘗試將分區重新掛載為
read-only
時,出現錯誤/foo is busy
。我可以列出所有打開的/foo
文件lsof /foo
但這並沒有告訴我文件是打開的
read-only
還是read-write
. 有沒有辦法只列出打開的文件read-write
?
要具體回答這個問題,您可以這樣做:
lsof /foo | awk 'NR==1 || $4~/[0-9]+u/'
這將顯示
read-write
在掛載點下打開的文件foo
。但是,您可能真正想做的是列出所有可以寫入的文件。這將包括打開的文件和打開的write-only
文件read-write
。為此,你會這樣做:lsof /foo | awk 'NR==1 || $4~/[0-9]+[uw]/'
這些命令應該可以工作,前提
FD
是輸出中的第 4 個欄位,並且其他欄位都不是空白的。當我在命令中包含路徑時,我在 Debian 上就是這種情況lsof
,但是如果我不列印並且TID
有時為空白的額外欄位(並且會混淆awk
)。lsof
發行版或版本之間的里程可能會有所不同。