linux - 如何检查 Bash 中的两条路径是否相等?

标签 linux bash shell unix sh

在 Bash 中检查两条路径是否相等的最佳方法是什么?例如,给定目录结构

~/
  Desktop/
    Downloads/ (symlink to ~/Downloads)
  Downloads/
    photo.png

假设当前目录是主目录,以下所有内容都是等价的:

./                    and ~
~/Desktop             and /home/you/Desktop
./Downloads           and ~/Desktop/Downloads
./Downloads/photo.png and ~/Downloads/photo.png

有没有原生的 Bash 方法可以做到这一点?

最佳答案

Bash 的测试命令有一个 -ef 运算符用于此目的

if [[ ./ -ef ~ ]]; then ...

if [[ ~/Desktop -ef /home/you/Desktop ]]; then ...

等...

$ help test | grep -e -ef
      FILE1 -ef FILE2  True if file1 is a hard link to file2.

关于linux - 如何检查 Bash 中的两条路径是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33980224/

相关文章:

linux - 如何使用Linux命令行跨子目录查找相似的文件名?

bash - 从 shell (bash) 脚本执行命令时在用户提示符中插入文本?

php - MATLAB::-nojvm 启动选项下不再支持此功能

bash - 通过ssh更新远程cron

linux - 在 linux 中获取硬盘的可用空间

linux - 重命名 trash-cli 的垃圾命令?

eclipse sh 编辑并运行

c - X11,使用 XSendEvent(3) 发送事件

java - 在 Ubuntu 中设置 Ant home

linux - 为什么要在 makefile 中包含/dev/null?