Linux 如何查看访问某个文件的进程

我们想知道进程是否正在访问给定文件?
使用Bash内置命令fuser很容易:

$fuser -a /usr/bin/gnome-calculator
/usr/bin/gnome-calculator: 619672e
$ps -ef | grep 619672 | grep -v grep
abc       619672    3136  0 13:13 ?        00:00:01 gnome-calculator
# lsof | grep calculator | grep "share" | head -n1
xdg-deskt    3111                                 abc  mem       REG              253,1          3009   12327296 /usr/share/locale-langpack/en_AU/LC_MESSAGES/gnome-calculator.mo
# fuser -a /usr/share/locale-langpack/en_AU/LC_MESSAGES/gnome-calculator.mo
/usr/share/locale-langpack/en_AU/LC_MESSAGES/gnome-calculator.mo:  3111m  3136m 619672m 1577230m
# ps -ef | grep -E "3111|3136|619672|1577230" | grep -v grep
abc         3111    2779  0 Aug03 ?        00:00:11 /usr/libexec/xdg-desktop-portal-gtk
abc         3136    2779  5 Aug03 ?        03:08:03 /usr/bin/gnome-shell
abc       619672    3136  0 13:13 ?        00:00:01 gnome-calculator
abc      1577230    2779  0 Aug04 ?        00:03:15 /usr/bin/nautilus --gapplication-service
日期:2020-07-07 20:56:49 来源:oir作者:oir