如何通过终端判断文件夹是否为目标目录的链接(无需比对大小)
判断文件夹是否为链接的终端方法
嘿,这事儿好办!要判断/home/xfce/下的目标文件夹是不是指向/root/VirtualBox VMs/Windows 7/的链接,完全不用麻烦比对大小,终端里几个简单命令就能搞定,我给你拆解下:
1. 用ls -l直观查看链接属性
这是最常用的方法,直接看文件的类型和指向:
ls -l /home/xfce/你的目标文件夹名
如果是软链接(符号链接),输出会类似这样:
lrwxrwxrwx 1 xfce xfce 日期 时间 你的目标文件夹名 -> /root/VirtualBox VMs/Windows 7/
箭头->后面的就是它实际指向的路径,一眼就能确认是不是你怀疑的那个目录。
要是硬链接的话(不过目录默认不能创建硬链接,除非用特殊工具,这种情况很少见),输出里不会有箭头,但硬链接和原目录的inode号是相同的,后面的方法可以验证。
2. 用readlink直接获取链接的目标路径
这个命令是专门用来读取符号链接指向的,更直接:
readlink -f /home/xfce/你的目标文件夹名
加上-f参数会输出完整的绝对路径,直接对比结果是不是/root/VirtualBox VMs/Windows 7/就行。如果这个文件夹不是链接,命令会直接输出它自身的绝对路径(和你输入的路径一致)。
3. 用stat对比inode编号验证硬链接
如果担心是硬链接(虽然目录硬链接非常少见),可以通过inode号来判断——硬链接和原文件/目录共享同一个inode号:
# 查看/home/xfce下文件夹的inode stat -c %i /home/xfce/你的目标文件夹名 # 查看/root下原文件夹的inode stat -c %i /root/VirtualBox VMs/Windows 7/
如果两个命令输出的数字完全相同,说明是硬链接;如果不同,要么是软链接,要么就是独立的文件夹。
一般来说,你遇到的情况大概率是软链接,前面两个方法就足够快速验证了。
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

