Mabilis na Sagot: Paano ko mahahanap ang lahat ng mga hard link sa Linux?

Upang mahanap ang lahat ng mga hard link nang sabay-sabay, mayroon maghanap ng mga spit out inode para sa lahat ng file sa isang device, at pagkatapos ay gumamit ng mga bagay tulad ng sort at uniq upang maghanap ng mga duplicate. Ililista nito ang mga file sa kasalukuyang direktoryo at gagawa ng ls dito.

Maaari kang maghanap ng mga hard link sa inode number NUM sa pamamagitan ng gamit ang ' -inum NUM'. Kung mayroong anumang mga file system mount point sa ibaba ng direktoryo kung saan mo sinisimulan ang paghahanap, gamitin ang ' -xdev ' na opsyon maliban kung ginagamit mo rin ang ' -L ' na opsyon.

Ang Windows na may NTFS filesystem ay may limitasyon na 1024 mahirap na link sa isang file.

Paano ko gagamitin ang find sa Linux?

Pangunahing Halimbawa

  1. hanapin ang . – pangalanan ang file na ito.txt. Kung kailangan mong malaman kung paano maghanap ng file sa Linux na tinatawag na thisfile. …
  2. hanapin /home -name *.jpg. Hanapin ang lahat. jpg file sa /home at mga direktoryo sa ibaba nito.
  3. hanapin ang . – uri f -walang laman. Maghanap ng isang walang laman na file sa loob ng kasalukuyang direktoryo.
  4. hanapin /home -user randomperson-mtime 6 -iname ".db"

Maaari mong suriin kung ang isang file ay isang symlink na may [ -L file ] . Katulad nito, maaari mong subukan kung ang isang file ay isang regular na file na may [ -f file ] , ngunit sa kasong iyon, ang pagsusuri ay ginagawa pagkatapos malutas ang mga symlink. Ang mga hardlink ay hindi isang uri ng file, ang mga ito ay iba't ibang pangalan lamang para sa isang file (sa anumang uri).

Ang dahilan ng mga hard-link na direktoryo ay hindi pwede ay medyo teknikal. Mahalaga, sinisira nila ang istraktura ng file-system. Sa pangkalahatan, hindi ka dapat gumamit ng mga hard link. Ang mga simbolikong link ay nagbibigay-daan sa karamihan ng parehong paggana nang hindi nagdudulot ng mga problema (hal. ln -s target na link ).

Upang tingnan ang mga simbolikong link sa isang direktoryo:

  1. Magbukas ng terminal at lumipat sa direktoryo na iyon.
  2. I-type ang command: ls -la. Dapat nitong ilista ang lahat ng mga file sa direktoryo kahit na nakatago ang mga ito.
  3. Ang mga file na nagsisimula sa l ay ang iyong mga simbolikong link na file.

1 Sagot. Ang bawat direktoryo ay may link sa sarili nito at sa magulang nito (kaya naman ang . ng isang walang laman na direktoryo ay magkakaroon ng bilang ng link na 2). Ngunit dahil nagli-link ang bawat direktoryo sa magulang nito, anumang direktoryo na may subdirectory ay magkakaroon ng link mula sa batang iyon.

Kung makakita ka ng dalawang file na may magkaparehong katangian ngunit hindi sigurado kung hard-link ang mga ito, gamitin ang ls -i command upang tingnan ang numero ng inode. Ang mga file na pinagsama-samang hard-link ay nagbabahagi ng parehong numero ng inode. Ang nakabahaging numero ng inode ay 2730074, ibig sabihin ang mga file na ito ay magkaparehong data.

Ang isang hard link ay hindi kailanman ituturo sa isang tinanggal na file. Ang isang hard link ay parang isang pointer sa aktwal na data ng file. At ang pointer ay tinatawag na "inode" sa terminolohiya ng file system. Kaya, sa madaling salita, ang paglikha ng isang hard link ay ang paglikha ng isa pang inode o isang pointer sa isang file.

Tulad ng post na ito? Mangyaring ibahagi sa iyong mga kaibigan:
OS Ngayon