不同目录下的同名是一样的吗?

不同目录下的同名是一样的吗?

例如,在我的 Red Hat Enterprise Linux 7.2 上有

/etc/rc.d/init.d/rabbitmq-server
/etc/logrotate.d/rabbitmq-server
/usr/sbin/rabbitmq-server
/usr/lib/ocf/resource.d/rabbitmq/rabbitmq-server

超过 4 种rabbitmq-server(实际上还有另外 2 种),它们是同一件事吗?我的意思是,如果我想开始,rabbitmq我可以使用其中一个命令吗rabbitmq-server

答案1

不,它们完全不同,并且有不同的内容。

例如我有

A/file
B/file

$ cat A/file
hello

$ cat B/file
there

我们可以看到他们说的是不同的话。

在你的情况下:

/etc/rc.d/init.d/rabbitmq-server- 这将是启动时启动脚本

/etc/logrotate.d/rabbitmq-server- 这将管理日志文件

/usr/sbin/rabbitmq-serverinit- 这是由脚本启动的主服务器程序

/usr/lib/ocf/resource.d/rabbitmq/rabbitmq-server- 这是您的 HA 配置的一部分。

所以这 4 个文件都做不同的事情。

答案2

就像在许多环境中一样,当然可能在多个位置存在多个同名的文件。

有多种方法可以查看文件是否相同(或者确实是具有多个链接的同一文件)。

diff首先,您可以使用诸如比较文件内容之类的工具。如果它们不同,您将看到差异(或者如果文件被解释为二进制文件,则通知您它们是不同的):

diff /etc/rc.d/init.d/rabbitmq-server /etc/logrotate.d/rabbitmq-server

其次,您可以使用长形式ls来查看文件是否是符号(或“软”链接)。这将显示给定文件是符号链接及其指向的位置:

$ ls -l bar
lrwxrwxrwx 1 ghoti ghoti 3 Aug 18 18:34 bar -> foo

l第一列中的 表明这是bar一个链接,而行尾bar -> foo表明这foo是指向的位置bar

ls -l还将显示一个文件有多少个硬链接:

$ ls -l foo
-rw-rw-r-- 2 ghoti ghoti 0 Aug 18 18:36 foo

在这种情况下,2权限和所有者之间的 表明该foo文件有两个硬链接。您可以使用find来定位指向同一文件的硬链接文件:

find / -samefile foo

上面的命令将在整个文件系统中搜索所有硬链接foo

至于您关于正确启动方法的问题rabbitmq,最好通过查阅手册页来找到:

man rabbitmq

相关内容