Snel antwoord: hoe vind ik alle harde links in Linux?

Om alle harde links in één keer te vinden, moet u vind uitgespuwde inodes voor alle bestanden op een apparaat, en gebruik vervolgens dingen als sort en uniq om duplicaten te vinden. Dit zal de bestanden in de huidige map weergeven en er een ls op uitvoeren.

U kunt zoeken naar harde links naar inodenummer NUM door met behulp van ' -inum NUM'. Als er aankoppelpunten van het bestandssysteem zijn onder de map waar u de zoekopdracht start, gebruikt u de optie ' -xdev', tenzij u ook de optie ' -L' gebruikt.

Windows met NTFS-bestandssysteem heeft een limiet van 1024 harde links op een bestand.

Hoe gebruik ik zoeken in Linux?

Basisvoorbeelden

  1. vind . – noem dit bestand.txt. Als u wilt weten hoe u een bestand in Linux kunt vinden met de naam thisfile. …
  2. zoek /home -naam *.jpg. Zoek allemaal. jpg-bestanden in de /home en de mappen eronder.
  3. vind . – typ f -leeg. Zoek naar een leeg bestand in de huidige map.
  4. zoek /home -user randomperson-mtime 6 -iname ".db"

Je kunt controleer of een bestand een symbolische link is met [ -L bestand ] . Op dezelfde manier kun je testen of een bestand een normaal bestand is met [ -f file ] , maar in dat geval wordt de controle uitgevoerd na het oplossen van symbolische links. hardlinks zijn geen type bestand, het zijn gewoon verschillende namen voor een bestand (van welk type dan ook).

De reden waarom directories hard linken is: niet toegestaan is een beetje technisch. In wezen breken ze de structuur van het bestandssysteem. Over het algemeen moet je sowieso geen harde links gebruiken. Symbolische links laten de meeste van dezelfde functionaliteit toe zonder problemen te veroorzaken (bijv. ln -s target link ).

Om de symbolische koppelingen in een directory te bekijken:

  1. Open een terminal en ga naar die map.
  2. Typ het commando: ls -la. Dit zal een lange lijst maken van alle bestanden in de map, zelfs als ze verborgen zijn.
  3. De bestanden die beginnen met l zijn uw symbolische linkbestanden.

1 antwoord. Elke map heeft een link naar zichzelf en zijn ouder (daarom heeft . van een lege map een linktelling van 2). Maar omdat elke map naar zijn bovenliggende map linkt, heeft elke map met een submap een koppeling van die onderliggende map.

Als u twee bestanden met identieke eigenschappen vindt, maar niet zeker weet of ze hard-linked zijn, gebruik de opdracht ls -i om het inodenummer te bekijken. Bestanden die hard-linked zijn, delen hetzelfde inodenummer. Het gedeelde inodenummer is 2730074, wat betekent dat deze bestanden identieke gegevens zijn.

Een harde link zal nooit naar een verwijderd bestand verwijzen. Een harde link is als een verwijzing naar de daadwerkelijke bestandsgegevens. En de aanwijzer wordt "inode" genoemd in de terminologie van het bestandssysteem. Met andere woorden, het maken van een harde link is het maken van een andere inode of een verwijzing naar een bestand.

Like deze post? Deel het met je vrienden:
OS vandaag