列出特定路径中没有 lsof/fuser 的打开文件

列出特定路径中没有 lsof/fuser 的打开文件

在没有lsof或 的系统上fuser,是否可以获取特定路径处打开文件的列表?

例如,我想卸载/volume1(软件 RAID)来运行e2fsck,但无法,因为它很忙。是否可以使用最小的工具集不仅可以查看打开的文件,还可以筛选出在/volume1以下位置打开的文件?

答案1

感谢@berndbausch:

# find /proc/*/fd /proc/*/cwd /proc/*/exe -type l \
  -exec bash -c 'l=$1; p="$(readlink ${l})"; [[ -f "${p}" && "${p}" =~ \/var\/log ]] && echo "${p}"' {} {} \;
/var/log/audit/audit.log
/var/log/messages
/var/log/NetworkManager
/var/log/warn
/var/log/firewalld
/var/log/cups/error_log
/var/log/wpa_supplicant.log
/var/log/lightdm/lightdm.log
/var/log/lightdm/x-0.log
/var/log/lightdm/x-0.log
/var/log/Xorg.0.log

相关内容