第一次 自己写脚本命令,使用/usr为例子。
首先,使用fuser 查找目录所有文件的使用进程的pid
以下fuser的命令解释:
c 包含 File的文件系统中关于任何打开的文件的报告。
-d 暗示使用了 -c 和 -x 标志。关于任何与文件系统(自父目录删除的)无链接的打开文件的报告。当与 -V 标志一起使用时,它也会报告被删除文件的节点号和大小。
-f 仅对文件的打开实例报告。
-k 将 SIGKILL 信号发送到每个本地进程。仅有 root 用户能终止另一用户的进程。
-u 为进程号后圆括号中的本地进程提供登录名。
-V 提供详细输出。-x 与 -c 或 -f 连用,报告除标准 fuser 输出以外的可执行的和可载入的对象。
然后通过管道将fuser输出的结果传送到xargs 送给 ps
xargs:-0 如果输入的stdin含有特殊字符,这个参数可以将他还原成一般字符
-e这个是EOF的意思,后面可以接一个字符串,当xargs分析到这个字符串的时候,就会停止工作
-p 在执行每个命令参数时,都会询问用户的意思。
-n 后面接次数,每次command命令执行时,要使用几个参数的意思
当xargs没有后面的参数时,默认用echo输出
fuser -c /usr |xargs ps -fp
ps 会接受由xargs传送过来的参数 即pid 然后输出所有的进程名
ps:
-f 显示UID,PPIP,C与STIME栏位。
-p 指定程序识别码,并列出该程序的状况