Bash 无法查看进程打开的文件

Bash 无法查看进程打开的文件,bash,file-descriptor,lsof,Bash,File Descriptor,Lsof,我知道我可以使用lsof-p或ls/proc//fd列出进程打开的文件 然而,我的问题是,假设我运行了一个bash脚本,它正在访问某个文件X 当我运行bash脚本并执行lsof-p或ls/proc//fd时,我将bash脚本名称视为进程打开的文件之一 是否在此处列出文件X,或者通过任何其他方式告诉我文件X已在此处访问?基于文本的冒险: $ cd "$(mktemp --directory)" $ touch input.txt $ cat > test.sh <<EOF >

我知道我可以使用lsof-p或ls/proc//fd列出进程打开的文件

然而,我的问题是,假设我运行了一个bash脚本,它正在访问某个文件X

当我运行bash脚本并执行lsof-p或ls/proc//fd时,我将bash脚本名称视为进程打开的文件之一

是否在此处列出文件X,或者通过任何其他方式告诉我文件X已在此处访问?

基于文本的冒险:

$ cd "$(mktemp --directory)"
$ touch input.txt
$ cat > test.sh <<EOF
> #!/usr/bin/env bash
> tail -f input.txt
> EOF
$ chmod u+x test.sh
$ ./test.sh &
[1] 921
$ ps --forest -g $(ps -o sid= -p $!) w
  PID TTY      STAT   TIME COMMAND
  574 pts/4    Ss     0:00 bash
  921 pts/4    S      0:00  \_ bash ./test.sh
  927 pts/4    S      0:00  |   \_ tail -f input.txt
  984 pts/4    R+     0:00  \_ ps --forest -g 574 w

如果你没有在列表中看到X,你应该在你的问题中清楚地注意到这一点。@MadPhysicast-我不确定这是否可行,这就是问题的原因。我已经修改了这个问题。所以从编程的角度来说,没有简单的方法:)
$ lsof input.txt 
COMMAND PID          USER   FD   TYPE DEVICE SIZE/OFF    NODE NAME
tail    927      username    3r   REG   0,45        0 2047211 input.txt