给定一个 shell 脚本,是否有一种简单的方法来提取它显式操作的文件(所以不像连接一些命令然后对其进行评估)?例如
#!/bin/bash
. /etc/someconfig.cfg
cat /somedir/somefile.txt
cp /otherdir/file1.txt /tmp/fileABC.txt
rm -f ~/stupidfile.txt
#EOF
是否有一个命令可以提取显式依赖项,以便我不必解析脚本或手动执行并获得如下输出:
/etc/someconfig.cfg
/somedir/somefile.txt
/otherdir/file1.txt
/tmp/fileABC.txt
~/stupidfile.txt
?
谢谢
答案1
解析程序是解决这个问题的合理方法(尤其是在解释性语言中)。
如果您有一个没有分支的静态脚本,您可以
strace -e open -f
对脚本进行操作以查看它打开了哪些文件。