లైనక్స్లోని ఐనోడ్ల గురించి మీరు ఎప్పుడైనా తెలుసుకోవాలనుకున్నారు
లైనక్స్ ఫైల్ సిస్టమ్ ఐనోడ్లపై ఆధారపడుతుంది. ఫైల్ సిస్టమ్ యొక్క అంతర్గత పనితీరు యొక్క ఈ ముఖ్యమైన భాగాలు తరచుగా తప్పుగా అర్ధం చేసుకోబడతాయి. అవి ఏమిటో మరియు వారు ఏమి చేస్తున్నారో చూద్దాం.
ఫైల్ సిస్టమ్ యొక్క ఎలిమెంట్స్
నిర్వచనం ప్రకారం, ఫైల్ సిస్టమ్ ఫైళ్ళను నిల్వ చేయాల్సిన అవసరం ఉంది మరియు అవి డైరెక్టరీలను కూడా కలిగి ఉంటాయి. ఫైల్స్ డైరెక్టరీలలో నిల్వ చేయబడతాయి మరియు ఈ డైరెక్టరీలు ఉప డైరెక్టరీలను కలిగి ఉంటాయి. ఏదో, ఎక్కడో, ఫైల్ సిస్టమ్లోని అన్ని ఫైల్లు ఎక్కడ ఉన్నాయో, వాటిని ఏమని పిలుస్తారు, ఏ ఖాతాలకు చెందినవి, వాటికి ఏ అనుమతులు ఉన్నాయి మరియు మరెన్నో రికార్డ్ చేయాలి. ఈ సమాచారాన్ని మెటాడేటా అని పిలుస్తారు ఎందుకంటే ఇది ఇతర డేటాను వివరించే డేటా.
Linux ext4 ఫైల్ సిస్టమ్లో, ప్రతి ఫైల్ మరియు డైరెక్టరీ కోసం అన్ని మెటాడేటాను నిల్వ చేసే అండర్ పిన్నింగ్ ఫ్రేమ్వర్క్ను అందించడానికి ఐనోడ్ మరియు డైరెక్టరీ నిర్మాణాలు కలిసి పనిచేస్తాయి. వారు కెర్నల్, యూజర్ అప్లికేషన్స్ లేదా లైనక్స్ యుటిలిటీస్ వంటి మెటాడేటాను అవసరమైన ఎవరికైనా అందుబాటులో ఉంచుతారు. ls
, stat
, మరియు df
.
ఐనోడ్లు మరియు ఫైల్ సిస్టమ్ పరిమాణం
ఒక జత నిర్మాణాలు ఉన్నాయనేది నిజం అయితే, ఫైల్ సిస్టమ్కు దాని కంటే చాలా ఎక్కువ అవసరం. ప్రతి నిర్మాణంలో వేల మరియు వేల ఉన్నాయి. ప్రతి ఫైల్ మరియు డైరెక్టరీకి ఐనోడ్ అవసరం, మరియు ప్రతి ఫైల్ డైరెక్టరీలో ఉన్నందున, ప్రతి ఫైల్కు డైరెక్టరీ నిర్మాణం అవసరం. డైరెక్టరీ నిర్మాణాలను డైరెక్టరీ ఎంట్రీలు లేదా “దంతాలు” అని కూడా పిలుస్తారు.
ప్రతి ఐనోడ్ ఒక ఐనోడ్ సంఖ్యను కలిగి ఉంటుంది, ఇది ఫైల్ సిస్టమ్లో ప్రత్యేకంగా ఉంటుంది. ఒకే ఐనోడ్ సంఖ్య ఒకటి కంటే ఎక్కువ ఫైల్ సిస్టమ్లలో కనిపిస్తుంది. అయినప్పటికీ, మీ లైనక్స్ సిస్టమ్లో ఎన్ని ఫైల్ సిస్టమ్లు అమర్చబడినా, ఫైల్ సిస్టమ్ ఐడి మరియు ఐనోడ్ నంబర్ ఒక ప్రత్యేకమైన ఐడెంటిఫైయర్ను తయారుచేస్తాయి.
గుర్తుంచుకోండి, Linux లో, మీరు హార్డ్ డ్రైవ్ లేదా విభజనను మౌంట్ చేయరు. మీరు విభజనలో ఉన్న ఫైల్ సిస్టమ్ను మౌంట్ చేస్తారు, కాబట్టి ఇది గ్రహించకుండా బహుళ ఫైల్ సిస్టమ్లను కలిగి ఉండటం సులభం. ఒకే డ్రైవ్లో మీకు బహుళ హార్డ్ డ్రైవ్లు లేదా విభజనలు ఉంటే, మీకు ఒకటి కంటే ఎక్కువ ఫైల్ సిస్టమ్ ఉంటుంది. అవి ఒకే రకంగా ఉండవచ్చు - అన్ని ext4, ఉదాహరణకు - కానీ అవి ఇప్పటికీ విభిన్న ఫైల్ సిస్టమ్లుగా ఉంటాయి.
అన్ని ఐనోడ్లు ఒకే పట్టికలో ఉంచబడతాయి. ఐనోడ్ సంఖ్యను ఉపయోగించి, ఫైల్ సిస్టమ్ ఆ ఐనోడ్ ఉన్న ఐనోడ్ పట్టికలో ఆఫ్సెట్ను సులభంగా లెక్కిస్తుంది. ఐనోడ్లోని “i” ఎందుకు సూచికను సూచిస్తుందో మీరు చూడవచ్చు.
ఐనోడ్ సంఖ్యను కలిగి ఉన్న వేరియబుల్ సోర్స్ కోడ్లో 32-బిట్, సంతకం చేయని దీర్ఘ పూర్ణాంకంగా ప్రకటించబడింది. దీని అర్థం ఐనోడ్ సంఖ్య గరిష్టంగా 2 ^ 32 పరిమాణంతో ఉన్న పూర్ణాంక విలువ, ఇది 4,294,967,295 లకు లెక్కిస్తుంది 4 అలాగే 4 బిలియన్ ఐనోడ్లకు పైగా.
ఇది సైద్ధాంతిక గరిష్టం. ఆచరణలో, ఫైల్ సిస్టమ్ సామర్థ్యం యొక్క 16 KB కి ఒక ఐనోడ్ యొక్క డిఫాల్ట్ నిష్పత్తిలో ఫైల్ సిస్టమ్ సృష్టించబడినప్పుడు ext4 ఫైల్ సిస్టమ్లోని ఐనోడ్ల సంఖ్య నిర్ణయించబడుతుంది. ఫైల్ సిస్టమ్ ఉపయోగంలో ఉన్నప్పుడు డైరెక్టరీ నిర్మాణాలు ఫ్లైలో సృష్టించబడతాయి, ఎందుకంటే ఫైల్ సిస్టమ్లో ఫైల్లు మరియు డైరెక్టరీలు సృష్టించబడతాయి.
మీ కంప్యూటర్లోని ఫైల్ సిస్టమ్లో ఎన్ని ఐనోడ్లు ఉన్నాయో చూడటానికి మీరు ఉపయోగించగల ఆదేశం ఉంది. ది -i
(ఐనోడ్లు) ఎంపిక df
కమాండ్ దాని అవుట్పుట్ను ఐనోడ్ల సంఖ్యలో ప్రదర్శించమని నిర్దేశిస్తుంది.
మేము మొదటి హార్డ్ డ్రైవ్లోని మొదటి విభజనలోని ఫైల్ సిస్టమ్ను చూడబోతున్నాము, కాబట్టి మేము ఈ క్రింది వాటిని టైప్ చేస్తాము:
df -i / dev / sda1
అవుట్పుట్ మాకు ఇస్తుంది:
- ఫైల్ సిస్టమ్: ఫైల్ సిస్టమ్ నివేదించబడుతోంది.
- ఐనోడ్లు: ఈ ఫైల్ సిస్టమ్లోని మొత్తం ఐనోడ్ల సంఖ్య.
- నేను వాడినాను: ఉపయోగంలో ఉన్న ఐనోడ్ల సంఖ్య.
- IFree: ఉపయోగం కోసం అందుబాటులో ఉన్న మిగిలిన ఐనోడ్ల సంఖ్య.
- నేను ఉపయోగిస్తాను%: ఉపయోగించిన ఐనోడ్ల శాతం.
- మౌంట్: ఈ ఫైల్ సిస్టమ్ కోసం మౌంట్ పాయింట్.
మేము ఈ ఫైల్ సిస్టమ్లో 10 శాతం ఐనోడ్లను ఉపయోగించాము. ఫైళ్లు డిస్క్ బ్లాకులలో హార్డ్ డ్రైవ్లో నిల్వ చేయబడతాయి. ప్రతి ఐనోడ్ వారు సూచించే ఫైల్ యొక్క కంటెంట్లను నిల్వ చేసే డిస్క్ బ్లాకులను సూచిస్తుంది. మీకు మిలియన్ల చిన్న ఫైళ్లు ఉంటే, మీరు హార్డ్ డ్రైవ్ స్థలం అయిపోయే ముందు ఐనోడ్లు అయిపోతాయి. ఏదేమైనా, ఇది చాలా కష్టమైన సమస్య.
గతంలో, ఇమెయిల్ సందేశాలను వివిక్త ఫైళ్ళగా నిల్వ చేసిన కొన్ని మెయిల్ సర్వర్లు (ఇది చిన్న ఫైళ్ళ యొక్క పెద్ద సేకరణలకు వేగంగా దారితీసింది) ఈ సమస్యను కలిగి ఉంది. ఆ అనువర్తనాలు వారి వెనుక చివరలను డేటాబేస్లకు మార్చినప్పుడు, ఇది సమస్యను పరిష్కరించింది. సగటు హోమ్ సిస్టమ్ ఐనోడ్ల నుండి అయిపోదు, ఎందుకంటే ఎక్స్ట్ 4 ఫైల్ సిస్టమ్తో, ఫైల్ సిస్టమ్ను మళ్లీ ఇన్స్టాల్ చేయకుండా మీరు ఎక్కువ ఐనోడ్లను జోడించలేరు.
మీ ఫైల్ సిస్టమ్లోని డిస్క్ బ్లాక్ల పరిమాణాన్ని చూడటానికి, మీరు వీటిని ఉపయోగించవచ్చు blockdev
తో ఆదేశం --getbsz
(బ్లాక్ పరిమాణాన్ని పొందండి) ఎంపిక:
sudo blockdev --getbsz / dev / sda
బ్లాక్ పరిమాణం 4096 బైట్లు.
ఉపయోగిద్దాం -బి
(బ్లాక్ పరిమాణం) 4096 బైట్ల బ్లాక్ పరిమాణాన్ని పేర్కొనడానికి మరియు సాధారణ డిస్క్ వాడకాన్ని తనిఖీ చేయడానికి ఎంపిక:
df -B 4096 / dev / sda1
ఈ అవుట్పుట్ మాకు చూపిస్తుంది:
- ఫైల్ సిస్టమ్: మేము నివేదిస్తున్న ఫైల్ సిస్టమ్.
- 4 కె-బ్లాక్స్: ఈ ఫైల్ సిస్టమ్లోని మొత్తం 4 కెబి బ్లాకుల సంఖ్య.
- ఉపయోగించబడిన: ఎన్ని 4 కె బ్లాక్లు వాడుకలో ఉన్నాయి.
- అందుబాటులో ఉంది: ఉపయోగం కోసం అందుబాటులో ఉన్న మిగిలిన 4 KB బ్లాకుల సంఖ్య.
- వా డు%: ఉపయోగించిన 4 కెబి బ్లాకుల శాతం.
- మౌంట్: ఈ ఫైల్ సిస్టమ్ కోసం మౌంట్ పాయింట్.
మా ఉదాహరణలో, ఫైల్ నిల్వ (మరియు ఐనోడ్లు మరియు డైరెక్టరీ నిర్మాణాల నిల్వ) ఈ ఫైల్ సిస్టమ్లో 28 శాతం స్థలాన్ని 10 శాతం ఐనోడ్ల ఖర్చుతో ఉపయోగించాయి, కాబట్టి మేము మంచి స్థితిలో ఉన్నాము.
ఐనోడ్ మెటాడేటా
ఫైల్ యొక్క ఐనోడ్ సంఖ్యను చూడటానికి, మనం ఉపయోగించవచ్చు ls
తో -i
(ఐనోడ్) ఎంపిక:
ls -i geek.txt
ఈ ఫైల్ యొక్క ఐనోడ్ సంఖ్య 1441801, కాబట్టి ఈ ఐనోడ్ ఈ ఫైల్ కోసం మెటాడేటాను కలిగి ఉంటుంది మరియు సాంప్రదాయకంగా, హార్డ్ డ్రైవ్లో ఫైల్ నివసించే డిస్క్ బ్లాక్లకు పాయింటర్లు. ఫైల్ విచ్ఛిన్నమైతే, చాలా పెద్దది లేదా రెండూ ఉంటే, కొన్ని డిస్క్ బ్లాక్లకు మరింత పాయింటర్లను కలిగి ఉండే ఐనోడ్ పాయింట్లను బ్లాక్ చేస్తుంది. మరియు ఆ ఇతర డిస్క్ బ్లాకులలో కొన్ని డిస్క్ బ్లాకుల సమితికి కూడా పాయింటర్లను కలిగి ఉండవచ్చు. ఇది ఐనోడ్ యొక్క స్థిర పరిమాణం మరియు డిస్క్ బ్లాక్లకు పరిమిత సంఖ్యలో పాయింటర్లను కలిగి ఉండగల సమస్యను అధిగమిస్తుంది.
ఆ పద్ధతిని "విస్తరణలు" ఉపయోగించుకునే కొత్త పథకం ద్వారా అధిగమించబడింది. ఇవి ఫైల్ను నిల్వ చేయడానికి ఉపయోగించే ప్రతి వరుస బ్లాక్ల ప్రారంభ మరియు ముగింపు బ్లాక్ను రికార్డ్ చేస్తాయి. ఫైల్ విడదీయబడకపోతే, మీరు మొదటి బ్లాక్ మరియు ఫైల్ పొడవును మాత్రమే నిల్వ చేయాలి. ఫైల్ విచ్ఛిన్నమైతే, మీరు ఫైల్ యొక్క ప్రతి భాగం యొక్క మొదటి మరియు చివరి బ్లాక్ను నిల్వ చేయాలి. ఈ పద్ధతి (స్పష్టంగా) మరింత సమర్థవంతంగా ఉంటుంది.
మీ ఫైల్ సిస్టమ్ డిస్క్ బ్లాక్ పాయింటర్లను లేదా ఎక్స్టెన్ట్లను ఉపయోగిస్తుందో లేదో చూడాలనుకుంటే, మీరు ఐనోడ్ లోపల చూడవచ్చు. అలా చేయడానికి, మేము దీనిని ఉపయోగిస్తాము డీబగ్స్
తో ఆదేశం -ఆర్
(అభ్యర్థన) ఎంపిక, మరియు ఆసక్తి ఫైల్ యొక్క ఐనోడ్ను పాస్ చేయండి. ఇది అడుగుతుందిడీబగ్స్
ఐనోడ్ యొక్క విషయాలను ప్రదర్శించడానికి దాని అంతర్గత “stat” ఆదేశాన్ని ఉపయోగించడం. ఐనోడ్ సంఖ్యలు ఫైల్ సిస్టమ్లో మాత్రమే ప్రత్యేకమైనవి కాబట్టి, మనం కూడా చెప్పాలి డీబగ్స్
ఐనోడ్ నివసించే ఫైల్ సిస్టమ్.
ఈ ఉదాహరణ ఆదేశం ఎలా ఉంటుందో ఇక్కడ ఉంది:
sudo debugfs -R "stat" / dev / sda1
క్రింద చూపిన విధంగా, ది డీబగ్స్
కమాండ్ ఐనోడ్ నుండి సమాచారాన్ని సంగ్రహిస్తుంది మరియు దానిని మనకు అందిస్తుంది తక్కువ
:
మేము ఈ క్రింది సమాచారాన్ని చూపించాము:
- ఐనోడ్: మేము చూస్తున్న ఐనోడ్ సంఖ్య.
- టైప్ చేయండి: ఇది సాధారణ ఫైల్, డైరెక్టరీ లేదా సింబాలిక్ లింక్ కాదు.
- మోడ్: ఆక్టల్లో ఫైల్ అనుమతులు.
- జెండాలు: విభిన్న లక్షణాలు లేదా కార్యాచరణను సూచించే సూచికలు. 0x80000 అనేది “ఎక్స్టెంట్స్” ఫ్లాగ్ (దీనిపై మరిన్ని క్రింద).
- తరం: నెట్వర్క్ కనెక్షన్ ద్వారా రిమోట్ ఫైల్ సిస్టమ్లను ఎవరైనా స్థానిక మెషీన్లో అమర్చినట్లుగా యాక్సెస్ చేసినప్పుడు నెట్వర్క్ ఫైల్ సిస్టమ్ (ఎన్ఎఫ్ఎస్) దీనిని ఉపయోగిస్తుంది. ఐనోడ్ మరియు తరం సంఖ్యలు ఫైల్ హ్యాండిల్ యొక్క రూపంగా ఉపయోగించబడతాయి.
- సంస్కరణ: Telugu: ఐనోడ్ వెర్షన్.
- వినియోగదారు: ఫైల్ యజమాని.
- సమూహం: ఫైల్ యొక్క సమూహ యజమాని.
- ప్రాజెక్ట్: ఎల్లప్పుడూ సున్నాగా ఉండాలి.
- పరిమాణం: ఫైల్ పరిమాణం.
- ఫైల్ ACL: ఫైల్ యాక్సెస్ నియంత్రణ జాబితా. యజమాని సమూహంలో లేని వ్యక్తులకు నియంత్రిత ప్రాప్యతను ఇవ్వడానికి ఇవి మిమ్మల్ని రూపొందించాయి.
- లింకులు: ఫైల్కు హార్డ్ లింక్ల సంఖ్య.
- బ్లాక్కౌంట్: ఈ ఫైల్కు కేటాయించిన హార్డ్ డ్రైవ్ స్థలం, 512-బైట్ భాగాలుగా ఇవ్వబడింది. మా ఫైల్కు వీటిలో ఎనిమిది కేటాయించబడ్డాయి, ఇది 4,096 బైట్లు. కాబట్టి, మా 98-బైట్ ఫైల్ ఒకే 4,096-బైట్ డిస్క్ బ్లాక్లో ఉంటుంది.
- ఫ్రాగ్మెంట్: ఈ ఫైల్ విచ్ఛిన్నం కాదు. (ఇది వాడుకలో లేని జెండా.)
- Ctime: ఫైల్ సృష్టించబడిన సమయం.
- సమయం: ఈ ఫైల్ చివరిసారిగా యాక్సెస్ చేయబడిన సమయం.
- Mtime: ఈ ఫైల్ చివరిగా సవరించబడిన సమయం.
- Crtime: ఫైల్ సృష్టించబడిన సమయం.
- అదనపు ఐనోడ్ ఫీల్డ్ల పరిమాణం: ఎక్స్ట్ 4 ఫైల్ సిస్టమ్ ఫార్మాట్ సమయంలో పెద్ద ఆన్-డిస్క్ ఐనోడ్ను కేటాయించే సామర్థ్యాన్ని పరిచయం చేసింది. ఈ విలువ ఐనోడ్ ఉపయోగిస్తున్న అదనపు బైట్ల సంఖ్య. ఈ అదనపు స్థలం క్రొత్త కెర్నల్స్ కోసం భవిష్యత్తు అవసరాలకు అనుగుణంగా లేదా విస్తరించిన లక్షణాలను నిల్వ చేయడానికి కూడా ఉపయోగించవచ్చు.
- చెక్సమ్ ఇనోడ్: ఈ ఐనోడ్ కోసం చెక్సమ్, ఇది ఐనోడ్ పాడైందో లేదో గుర్తించడం సాధ్యం చేస్తుంది.
- పొడిగింపులు: ఎక్స్టెన్స్లను ఉపయోగిస్తుంటే (ext4 లో, అవి డిఫాల్ట్గా), ఫైళ్ల డిస్క్ బ్లాక్ వాడకానికి సంబంధించిన మెటాడేటాలో రెండు సంఖ్యలు ఉన్నాయి, ఇవి విచ్ఛిన్నమైన ఫైల్ యొక్క ప్రతి భాగం యొక్క ప్రారంభ మరియు ముగింపు బ్లాక్లను సూచిస్తాయి. ఫైల్ యొక్క ప్రతి భాగం తీసుకున్న ప్రతి డిస్క్ బ్లాక్ను నిల్వ చేయడం కంటే ఇది చాలా సమర్థవంతంగా ఉంటుంది. ఈ బ్లాక్ ఆఫ్సెట్లో మా చిన్న ఫైల్ ఒక డిస్క్ బ్లాక్లో ఉన్నందున మాకు ఒక పరిధి ఉంది.
ఫైల్ పేరు ఎక్కడ ఉంది?
మాకు ఇప్పుడు ఫైల్ గురించి చాలా సమాచారం ఉంది, కానీ, మీరు గమనించినట్లుగా, మాకు ఫైల్ పేరు రాలేదు. ఇక్కడే డైరెక్టరీ నిర్మాణం అమలులోకి వస్తుంది. Linux లో, ఫైల్ లాగానే, డైరెక్టరీకి ఐనోడ్ ఉంటుంది. ఫైల్ డేటాను కలిగి ఉన్న డిస్క్ బ్లాక్లను సూచించడానికి బదులుగా, డైరెక్టరీ ఐనోడ్ డైరెక్టరీ నిర్మాణాలను కలిగి ఉన్న డిస్క్ బ్లాక్లను సూచిస్తుంది.
ఐనోడ్తో పోలిస్తే, డైరెక్టరీ నిర్మాణం ఫైల్ గురించి పరిమిత సమాచారాన్ని కలిగి ఉంటుంది. ఇది ఫైల్ యొక్క ఐనోడ్ సంఖ్య, పేరు మరియు పేరు యొక్క పొడవును మాత్రమే కలిగి ఉంటుంది.
ఐనోడ్ మరియు డైరెక్టరీ నిర్మాణం మీరు (లేదా ఒక అప్లికేషన్) ఫైల్ లేదా డైరెక్టరీ గురించి తెలుసుకోవలసిన ప్రతిదాన్ని కలిగి ఉంటుంది. డైరెక్టరీ నిర్మాణం డైరెక్టరీ డిస్క్ బ్లాక్లో ఉంది, కాబట్టి ఫైల్ ఉన్న డైరెక్టరీ మాకు తెలుసు. డైరెక్టరీ నిర్మాణం మాకు ఫైల్ పేరు మరియు ఐనోడ్ సంఖ్యను ఇస్తుంది. టైమ్స్టాంప్లు, అనుమతులు మరియు ఫైల్ సిస్టమ్లో ఫైల్ డేటాను ఎక్కడ కనుగొనాలో సహా ఫైల్ గురించి మిగతావన్నీ ఐనోడ్ మాకు చెబుతుంది.
డైరెక్టరీ ఐనోడ్లు
మీరు డైరెక్టరీ యొక్క ఐనోడ్ సంఖ్యను ఫైళ్ళ కోసం చూడగలిగినంత సులభంగా చూడవచ్చు.
కింది ఉదాహరణలో, మేము ఉపయోగిస్తాము ls
తో -l
(లాంగ్ ఫార్మాట్), -i
(ఐనోడ్), మరియు -డి
(డైరెక్టరీ) ఎంపికలు, మరియు చూడండి పని
డైరెక్టరీ:
ls -లిడ్ పని /
ఎందుకంటే మేము ఉపయోగించాము -డి
(డైరెక్టరీ) ఎంపిక,ls
డైరెక్టరీపై నివేదికలు, దాని విషయాలు కాదు. ఈ డైరెక్టరీ యొక్క ఐనోడ్ 1443016.
కోసం పునరావృతం చేయడానికి ఇల్లు
డైరెక్టరీ, మేము ఈ క్రింది వాటిని టైప్ చేస్తాము:
ls -lid ~
కోసం ఐనోడ్ ఇల్లు
డైరెక్టరీ 1447510, మరియు పని
డైరెక్టరీ హోమ్ డైరెక్టరీలో ఉంది. ఇప్పుడు, యొక్క విషయాలను చూద్దాం పని
డైరెక్టరీ. బదులుగా-డి
(డైరెక్టరీ) ఎంపిక, మేము ఉపయోగిస్తాము -అ
(అన్నీ) ఎంపిక. ఇది సాధారణంగా దాచిన డైరెక్టరీ ఎంట్రీలను మాకు చూపుతుంది.
మేము ఈ క్రింది వాటిని టైప్ చేస్తాము:
ls -లియా పని /
ఎందుకంటే మేము ఉపయోగించాము -అ
(అన్నీ) ఎంపిక, సింగిల్- (.) మరియు డబుల్-డాట్ (..) ఎంట్రీలు ప్రదర్శించబడతాయి. ఈ ఎంట్రీలు డైరెక్టరీని సూచిస్తాయి (సింగిల్-డాట్) మరియు దాని మాతృ డైరెక్టరీ (డబుల్-డాట్.)
సింగిల్-డాట్ ఎంట్రీ కోసం మీరు ఐనోడ్ నంబర్ను చూస్తే, అది 1443016 that అని మేము ఇనోడ్ నంబర్ను కనుగొన్నప్పుడు మాకు లభించిన అదే ఐనోడ్ నంబర్ పని
డైరెక్టరీ. అలాగే, డబుల్-డాట్ ఎంట్రీకి ఐనోడ్ సంఖ్య ఐనోడ్ సంఖ్యకు సమానం ఇల్లు
డైరెక్టరీ.
అందుకే మీరు దీన్ని ఉపయోగించవచ్చు cd ..
డైరెక్టరీ ట్రీలో ఒక స్థాయిని పైకి తరలించడానికి ఆదేశం. అదేవిధంగా, మీరు ఒక అప్లికేషన్ లేదా స్క్రిప్ట్ పేరుతో ముందు ఉన్నప్పుడు./
, మీరు అప్లికేషన్ లేదా స్క్రిప్ట్ను ఎక్కడ ప్రారంభించాలో షెల్కు తెలియజేయండి.
ఐనోడ్లు మరియు లింకులు
మేము కవర్ చేసినట్లుగా, ఫైల్ సిస్టమ్లో బాగా ఏర్పడిన మరియు ప్రాప్యత చేయగల ఫైల్ను కలిగి ఉండటానికి మూడు భాగాలు అవసరం: ఫైల్, డైరెక్టరీ నిర్మాణం మరియు ఐనోడ్. ఫైల్ హార్డ్ డ్రైవ్లో నిల్వ చేయబడిన డేటా, డైరెక్టరీ నిర్మాణం ఫైల్ యొక్క పేరు మరియు దాని ఐనోడ్ సంఖ్యను కలిగి ఉంటుంది మరియు ఐనోడ్ ఫైల్ కోసం అన్ని మెటాడేటాను కలిగి ఉంటుంది.
సింబాలిక్ లింకులు ఫైల్స్ లాగా కనిపించే ఫైల్ సిస్టమ్ ఎంట్రీలు, కానీ అవి నిజంగా ఉన్న ఫైల్ లేదా డైరెక్టరీని సూచించే సత్వరమార్గాలు. వారు దీన్ని ఎలా నిర్వహిస్తారో మరియు దీనిని సాధించడానికి మూడు అంశాలు ఎలా ఉపయోగించబడుతున్నాయో చూద్దాం.
మనకు రెండు ఫైళ్ళతో డైరెక్టరీ లభించిందని చెప్పండి: ఒకటి స్క్రిప్ట్, మరియు మరొకటి క్రింద చూపిన విధంగా ఒక అప్లికేషన్.
మేము ln కమాండ్ మరియు -ఎస్
(సింబాలిక్) స్క్రిప్ట్ ఫైల్కు మృదువైన లింక్ను సృష్టించే ఎంపిక:
ls -s my_script geek.sh
మేము దీనికి లింక్ను సృష్టించాము my_script.sh
అని geek.sh
. మేము ఈ క్రింది వాటిని టైప్ చేసి ఉపయోగించవచ్చుls
రెండు స్క్రిప్ట్ ఫైళ్ళను చూడటానికి:
ls -li * .sh
కోసం ప్రవేశం geek.sh
నీలం రంగులో కనిపిస్తుంది. అనుమతుల జెండాల యొక్క మొదటి అక్షరం లింక్ కోసం “l”, మరియు->
కు పాయింట్లు my_script.sh
. ఇవన్నీ దానిని సూచిస్తాయి geek.sh
ఒక లింక్.
మీరు బహుశా expect హించినట్లుగా, రెండు స్క్రిప్ట్ ఫైల్స్ వేర్వేరు ఐనోడ్ సంఖ్యలను కలిగి ఉంటాయి. మరింత ఆశ్చర్యకరమైన విషయం ఏమిటంటే, మృదువైన లింక్, geek.sh
, అసలు స్క్రిప్ట్ ఫైల్ వలె ఒకే యూజర్ అనుమతులు లేవు. వాస్తవానికి, దీనికి అనుమతులుgeek.sh
చాలా ఉదారంగా ఉన్నాయి-అన్ని వినియోగదారులకు పూర్తి అనుమతులు ఉన్నాయి.
కోసం డైరెక్టరీ నిర్మాణం geek.sh
లింక్ యొక్క పేరు మరియు దాని ఐనోడ్ ఉన్నాయి. మీరు లింక్ను ఉపయోగించడానికి ప్రయత్నించినప్పుడు, దాని ఐనోడ్ సాధారణ ఫైల్ మాదిరిగానే సూచించబడుతుంది. లింక్ ఐనోడ్ డిస్క్ బ్లాక్కు సూచించబడుతుంది, కానీ ఫైల్ కంటెంట్ డేటాను కలిగి ఉండటానికి బదులుగా, డిస్క్ బ్లాక్ అసలు ఫైల్ పేరును కలిగి ఉంటుంది. ఫైల్ సిస్టమ్ అసలు ఫైల్కు మళ్ళిస్తుంది.
మేము అసలు ఫైల్ను తొలగిస్తాము మరియు విషయాలను చూడటానికి ఈ క్రింది వాటిని టైప్ చేసినప్పుడు ఏమి జరుగుతుందో చూద్దాంgeek.sh
:
rm my_script.sh
పిల్లి geek.sh
సింబాలిక్ లింక్ విచ్ఛిన్నమైంది మరియు దారిమార్పు విఫలమవుతుంది.
అప్లికేషన్ ఫైల్కు హార్డ్ లింక్ను సృష్టించడానికి మేము ఇప్పుడు కింది వాటిని టైప్ చేస్తాము:
ln ప్రత్యేక అనువర్తనం గీక్-అనువర్తనం
ఈ రెండు ఫైళ్ళ కొరకు ఐనోడ్లను చూడటానికి, మేము ఈ క్రింది వాటిని టైప్ చేస్తాము:
ls -li
రెండూ రెగ్యులర్ ఫైల్స్ లాగా కనిపిస్తాయి. గురించి ఏమీ లేదు గీక్-అనువర్తనం
ఇది ఒక లింక్ అని సూచిస్తుంది ls
కోసం జాబితా geek.sh
చేసింది. ప్లస్,గీక్-అనువర్తనం
అసలు ఫైల్ వలె అదే వినియోగదారు అనుమతులను కలిగి ఉంది. ఏదేమైనా, ఆశ్చర్యకరమైన విషయం ఏమిటంటే, రెండు అనువర్తనాలు ఒకే ఐనోడ్ సంఖ్యను కలిగి ఉన్నాయి: 1441797.
కోసం డైరెక్టరీ ఎంట్రీ గీక్-అనువర్తనం
“గీక్-అనువర్తనం” మరియు ఐనోడ్ సంఖ్యను కలిగి ఉంది, కానీ ఇది అసలు ఫైల్ యొక్క ఐనోడ్ సంఖ్యకు సమానం. కాబట్టి, మనకు వేర్వేరు పేర్లతో రెండు ఫైల్ సిస్టమ్ ఎంట్రీలు ఉన్నాయి, అవి రెండూ ఒకే ఐనోడ్ను సూచిస్తాయి. వాస్తవానికి, ఎన్ని అంశాలు అయినా ఒకే ఐనోడ్ను సూచించగలవు.
మేము ఈ క్రింది వాటిని టైప్ చేసి ఉపయోగిస్తాము stat
లక్ష్య ఫైల్ను చూడటానికి ప్రోగ్రామ్:
ప్రత్యేక ప్రత్యేక అనువర్తనం
రెండు హార్డ్ లింకులు ఈ ఫైల్కు సూచించడాన్ని మేము చూస్తాము. ఇది ఐనోడ్లో నిల్వ చేయబడుతుంది.
కింది ఉదాహరణలో, మేము అసలు ఫైల్ను తొలగిస్తాము మరియు రహస్యమైన, సురక్షితమైన పాస్వర్డ్తో లింక్ను ఉపయోగించడానికి ప్రయత్నిస్తాము:
rm ప్రత్యేక అనువర్తనం
./geek-app correcthorsebatterystaple
ఆశ్చర్యకరంగా, అప్లికేషన్ expected హించిన విధంగా నడుస్తుంది, కానీ ఎలా? ఇది పనిచేస్తుంది ఎందుకంటే, మీరు ఫైల్ను తొలగించినప్పుడు, ఐనోడ్ తిరిగి ఉపయోగించడానికి ఉచితం. డైరెక్టరీ నిర్మాణం సున్నా యొక్క ఐనోడ్ సంఖ్యను కలిగి ఉన్నట్లు గుర్తించబడింది, మరియు ఆ స్థలంలో మరొక ఫైల్ నిల్వ చేయడానికి డిస్క్ బ్లాక్స్ అందుబాటులో ఉంటాయి.
ఐనోడ్కు హార్డ్ లింకుల సంఖ్య ఒకటి కంటే ఎక్కువగా ఉంటే, అయితే, హార్డ్ లింక్ లెక్కింపు ఒకటి తగ్గుతుంది మరియు తొలగించబడిన ఫైల్ యొక్క డైరెక్టరీ నిర్మాణం యొక్క ఐనోడ్ సంఖ్య సున్నాకి సెట్ చేయబడుతుంది. హార్డ్ డ్రైవ్ మరియు ఐనోడ్లోని ఫైల్ విషయాలు ఇప్పటికీ ఉన్న హార్డ్ లింక్లకు అందుబాటులో ఉన్నాయి.
మేము ఈ క్రింది వాటిని టైప్ చేసి, స్టాట్ను మరోసారి ఉపయోగిస్తాము - ఈసారి గీక్-అనువర్తనం
:
స్టేట్ గీక్-అనువర్తనం
ఈ వివరాలు మునుపటి మాదిరిగానే అదే ఐనోడ్ (1441797) నుండి లాగబడతాయి stat
ఆదేశం. లింక్ లెక్కింపు ఒకటి తగ్గించబడింది.
ఎందుకంటే మేము తొలగిస్తే, ఈ ఐనోడ్కు ఒక హార్డ్ లింక్కి దిగుతున్నాముగీక్-అనువర్తనం
, ఇది నిజంగా ఫైల్ను తొలగిస్తుంది. ఫైల్ సిస్టమ్ ఐనోడ్ను విముక్తి చేస్తుంది మరియు డైరెక్టరీ నిర్మాణాన్ని సున్నా యొక్క ఐనోడ్తో గుర్తు చేస్తుంది. క్రొత్త ఫైల్ హార్డ్ డ్రైవ్లోని డేటా నిల్వను తిరిగి రాస్తుంది.
సంబంధించినది:Linux లో స్టేట్ కమాండ్ ఎలా ఉపయోగించాలి
ఐనోడ్ ఓవర్ హెడ్స్
ఇది చక్కని వ్యవస్థ, కానీ ఓవర్ హెడ్స్ ఉన్నాయి. ఫైల్ను చదవడానికి, ఫైల్ సిస్టమ్ ఈ క్రింది వాటిని చేయాలి:
- సరైన డైరెక్టరీ నిర్మాణాన్ని కనుగొనండి
- ఐనోడ్ సంఖ్యను చదవండి
- సరైన ఐనోడ్ను కనుగొనండి
- ఐనోడ్ సమాచారాన్ని చదవండి
- సంబంధిత డిస్క్ బ్లాక్లకు ఐనోడ్ లింక్లు లేదా ఎక్స్టెన్స్లను అనుసరించండి
- ఫైల్ డేటాను చదవండి
డేటా అసంబద్ధంగా ఉంటే చుట్టూ కొంచెం ఎక్కువ దూకడం అవసరం.
చేయవలసిన పనిని g హించుకోండిls
అనేక ఫైళ్ళ యొక్క పొడవైన ఫార్మాట్ ఫైల్ జాబితాను నిర్వహించడానికి. ఇప్పుడే చాలా ముందుకు వెనుకకు ఉన్నాయి ls
దాని అవుట్పుట్ను ఉత్పత్తి చేయడానికి అవసరమైన సమాచారాన్ని పొందడానికి.
వాస్తవానికి, ఫైల్ సిస్టమ్ యాక్సెస్ను వేగవంతం చేయడం అంటే, లైనక్స్ సాధ్యమైనంత ఎక్కువ ప్రీమిటివ్ ఫైల్ కాషింగ్ చేయడానికి ఎందుకు ప్రయత్నిస్తుంది. ఇది చాలా సహాయపడుతుంది, కానీ కొన్నిసార్లు-ఏ ఫైల్ సిస్టమ్ మాదిరిగానే-ఓవర్ హెడ్స్ స్పష్టంగా కనిపిస్తాయి.
ఎందుకో ఇప్పుడు మీకు తెలుస్తుంది.