在没有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