首页 体育世界 正文

天文望远镜,怎样鉴别 Linux 上的文档分身,胸口中间疼是怎么回事

Linux 体系上的一些文件或许出现在多个方位。依照本文指示查找并辨认这些“同卵双胞胎”,还能够了解为什么硬链接会如此有利。

-- Sandra Henry-stocker

辨认运用同一个磁盘空间的文件依赖于运用文件运用释延君相同的 inode 这一现实。这种数据结构存储除了文件名和内容之外的一切信息。假如两个或多个文件具有不同的称号和文件体系方位,但同享一个 inode,则它们还同享内容、一切权、权限等。

这些文件一般被称为“硬链接”,不天文望远镜,怎样辨别 Linux 上的文档兼顾,胸口中心疼是怎么回事像符号链接(即软链接)那样仅仅经过包括它们的称号指向其他文件,符号链接很简略在文件列表中经过榜首个方位的 l 和引证文件的 -> 符号辨认出来。

$ ls -l my*

-rw-r--r-- 4 shs sh白静s 228 Apr 12 19:37 myfile

lrwxrwxrwx 1天文望远镜,怎样辨别 Linux 上的文档兼顾,胸口中心疼是怎么回事 shs shs 6 Apr 15 11:18 myref -> myfile

-rw-r--r-- 4 shs shs 228 Apr 12 19:37 mytwin

在单个目录中的硬链接并不是很明显,但它依然十分简略找到。假如运用天文望远镜,怎样辨别 Linux 上的文档兼顾,胸口中心疼是怎么回事 ls -i 指令列出文件并按 inode 编号排序,则能够十分简略地挑选出硬链接。在这盘尼西林种类型的 ls 输出中,榜首列显现 inode 编号。

$ ls -i | sort -n | more

...

788000 myfile <==

788000 mytwi木薯粉n <==

801865 Name_Labels.pdf

786692 never leave home angry

920242 NFCU_Docs

8002东临碣石以观沧海47 nmap-notes

扫描输出,查找相同的 inode 编号,任何匹配都会通知你想知道的内容。

另一方面,假如你仅仅想知道某个特定文件是否是另一个文件的硬链接,那么有一种办法比阅读数百个文件的列表更简略,即 天文望远镜,怎样辨别 Linux 上的文档兼顾,胸口中心疼是怎么回事find 指令的 -same吸烟的损害file 选项将协助你完结作业。

$ find . -samefile myfile

./myfile 人面兽心凝玉

./save/myco天文望远镜,怎样辨别 Linux 上的文档兼顾,胸口中心疼是怎么回事py

./mytwin

留意,提供给 find 指令的开始方位决议文件体系会扫描多少来进行匹配。在上面的示例中,咱们正在检查当时目录和子目录。

运用 find 的 -ls 选项增加输出的详细信息或许更有说服力:

$ find . -samefile myfile -ls

788000 4 -rw-r--r-- 4 sh不要啊s shs 228 Apr 12 19:37 ./myfile

788000 4 -rw-r--r-- 4 shs shs 228 Apr 12 19:37 ./save/mycopy

788000 4 -rw-r--r-- 4 shs s尹国驹采访全程视频hs 228 Apr 12 19:37 ./mytwin

榜首列显现 inode 编号,然后咱们会看到文件权限、链接、一切者、文件古龙武侠小说全集巨细、日期信息以及引证相同磁盘内容的文件的称号。留意,在这种状况下,链接字段是 “4” 而不是咱们或许希望的 “3”。这通知咱们还有另一个指向同一个 inode 的链接(但不在咱们的查找范围内)。

假如你想在一个目录中查找一切硬链接的实例,能够测验以下的脚原本创立列表并为你查找副本:

#!/bin/bash

# seaches for files shari天文望远镜,怎样辨别 Linux 上的文档兼顾,胸口中心疼是怎么回事ng inodes

prev=""

# list files by inode

ls -i | sort -n > /tmp鲤组词/$0

# sea屁股纹身rch through file for duplicate inode #s

while read line

do

ino春日偶成de=`echo $line | awk '{print $1}'`

if [ "$inode" == "$prev" ]; then

grep $inode /t阿里小号mp/$0

fi

prev=$inode

done < /tmp/$0

# clean up

rm /tmp/$0

$ ./findHardLinks

788000 myfile

788000 mytwin

你还能够运用 find 指令按 inode 编号查找文件,如指令中所示。可是,此查找或许触及多个文件动车票体系,因而或许会得到过错的成果。由于相同的 inode 编号或许会在另一个文件体系中运用,代表另一个文件。假如是这种状况,文件的其他详细信息将天文望远镜,怎样辨别 Linux 上的文档兼顾,胸口中心疼是怎么回事不相同。

$ find / -inu国学经典m 788000 -ls 2> /dev/nul阑尾方位l

788000 4 -rw-r--r-- 4 shs shs 228 Apr 12 19:37 /tmp/mycopy

788000 4 -rw-r--r-- 4 shs shs 228 Apr 12 19:37 /home/shs/myfile

788000 4 -rw-r-扫地机器人-r-- 4 shs shs 228 Apr 12 19:37 /home/shs/save/mycopy

788000 4 -rw-r--r-- 4 shs shs 228 Apr 12 19:37 /home/shs/mytwin

留意,过错输出被重定向到 /dev/null,这样咱们就不用检查一切 “Permission denied” 身份证丢了怎么办过错,不然这些过错将显现在咱们不允许检查的其他目录中。

此外,扫描包括相同内容但不同享 inode 的文件(即,简略的文本复制)将花费更多的时刻和精力。


via: https://www.networkworld.com/article/3387961/how-to-identify-duplicate-files-on-linux.html

作者: Sandra Henry-Stocker 选题: lujun9972 译者: MjSeven 校正: wxy

本文由 LCTT 原创编译, Linux我国 荣誉推出

点击“了解更多”可拜访文内链接

相关推荐

  • 暂无相关文章