我如何知道 /usr/bin/snap 到底调用了什么?

我如何知道 /usr/bin/snap 到底调用了什么?

比如说,我certbot安装了 snap,我想弄清楚当我调用 时会发生什么certbot --help。首先,我检查当我输入 时 bash 调用了什么certbot

$ type -a certbot
certbot is /snap/bin/certbot

然后我检查 /snap/bin/certbot 指向的位置:

ls -l /snap/bin/certbot
lrwxrwxrwx 1 root root 13 Feb 18 18:33 /snap/bin/certbot -> /usr/bin/snap

/usr/bin/snap 只是一个二进制文件:

$ ls -l /usr/bin/snap
-rwxr-xr-x 1 root root 23618992 Feb  2 08:21 /usr/bin/snap

因此,我认为 /usr/bin/snap 会根据调用方式确定要调用的内容。但是,我如何才能知道之后到底调用了什么?(例如,是python /snap/certbot/952/main.py,还是其他内容?)

答案1

正如评论指出的那样,我发现docker可执行文件如下:

user@machine:~$ cd /snap/docker
user@machine:/snap/docker$ ls -la
total 8
drwxr-xr-x  4 root root 4096 Aug 22 12:06 ./
drwxr-xr-x 23 root root 4096 Mär  4 17:11 ../
drwxr-xr-x 13 root root  335 Jun  8  2020 471/
drwxr-xr-x 12 root root  173 Feb  5  2021 796/
lrwxrwxrwx  1 root root    3 Aug 22 12:06 current -> 796/
user@machine:/snap/docker$ ls -la current/bin/ | grep docker
-rwxr-xr-x   1 root root  85055920 Feb  5  2021 docker

对我来说,这是:

michael@thinkpad:~$ /snap/docker/current/bin/docker --version
Docker version 19.03.13, build cd8016b6bc

相关内容