Snabbsvar: Hur hittar jag alla hårda länkar i Linux?

För att hitta alla hårda länkar på en gång, ha hitta spottade inoder för alla filer på en enhet, och använd sedan saker som sort och uniq för att hitta dubbletter. Detta kommer att lista filer i den aktuella katalogen och utföra en ls på den.

Du kan söka efter hårda länkar till inodnummer NUM med med ' -inum NUM '. Om det finns några filsystemmonteringspunkter under katalogen där du startar sökningen, använd alternativet ' -xdev ' om du inte också använder alternativet ' -L '.

Windows med NTFS-filsystem har en gräns på 1024 hårda länkar på en fil.

Hur använder jag find i Linux?

Grundläggande exempel

  1. hitta . – namnge denna fil.txt. Om du behöver veta hur man hittar en fil i Linux som heter denna fil. …
  2. hitta /hem -namn *.jpg. Leta efter alla. jpg-filer i /home och kataloger under den.
  3. hitta . – skriv f -tom. Leta efter en tom fil i den aktuella katalogen.
  4. hitta /hem -användare randomperson-mtime 6 -iname “.db”

Du kan kontrollera om en fil är en symbollänk med [ -L fil ] . På samma sätt kan du testa om en fil är en vanlig fil med [ -f file ] , men i så fall görs kontrollen efter att symlänkar har lösts. hårda länkar är inte en typ av fil, de är bara olika namn på en fil (av vilken typ som helst).

Anledningen till hårdlänkande kataloger är inte tillåtet är lite tekniskt. I huvudsak bryter de filsystemets struktur. Du bör i allmänhet inte använda hårda länkar ändå. Symboliska länkar tillåter det mesta av samma funktionalitet utan att orsaka problem (t.ex. ln -s mållänk ).

Så här visar du de symboliska länkarna i en katalog:

  1. Öppna en terminal och flytta till den katalogen.
  2. Skriv kommandot: ls -la. Detta ska lång lista alla filer i katalogen även om de är dolda.
  3. Filerna som börjar med l är dina symboliska länkfiler.

1 Svar. Varje katalog har en länk till sig själv och sin förälder (det är därför . av en tom katalog kommer att ha en länkräkning på 2). Men eftersom varje katalog länkar till sin förälder, kommer alla kataloger som har en underkatalog att ha en länk från det underordnade.

Om du hittar två filer med identiska egenskaper men är osäker på om de är hårt länkade, använd kommandot ls -i för att se inodnumret. Filer som är hårt länkade har samma inodnummer. Det delade inodnumret är 2730074, vilket betyder att dessa filer är identiska data.

En hård länk kommer aldrig att peka på en raderad fil. En hård länk är som en pekare till den faktiska fildatan. Och pekaren kallas "inod" i filsystemsterminologi. Så, med andra ord, att skapa en hård länk är att skapa en annan inod eller en pekare till en fil.

Gilla det här inlägget? Dela gärna med dina vänner:
OS idag