லினக்ஸில் உள்ள ஐனோட்களைப் பற்றி நீங்கள் எப்போதும் தெரிந்து கொள்ள விரும்பிய அனைத்தும்

லினக்ஸ் கோப்பு முறைமை ஐனோட்களை நம்பியுள்ளது. கோப்பு முறைமையின் உள் செயல்பாடுகளின் இந்த முக்கிய பகுதிகள் பெரும்பாலும் தவறாக புரிந்து கொள்ளப்படுகின்றன. அவை என்ன, அவை என்ன செய்கின்றன என்பதைப் பார்ப்போம்.

கோப்பு முறைமையின் கூறுகள்

வரையறையின்படி, ஒரு கோப்பு முறைமை கோப்புகளை சேமிக்க வேண்டும், அவற்றில் கோப்பகங்களும் உள்ளன. கோப்புகள் கோப்பகங்களுக்குள் சேமிக்கப்படுகின்றன, மேலும் இந்த கோப்பகங்களில் துணை அடைவுகள் இருக்கலாம். ஏதோ, எங்கோ, கோப்பு முறைமையில் எல்லா கோப்புகளும் எங்கு அமைந்துள்ளன, அவை எவை அழைக்கப்படுகின்றன, அவை எந்தக் கணக்குகளைச் சேர்ந்தவை, எந்த அனுமதிகள் உள்ளன, மேலும் பலவற்றை பதிவு செய்ய வேண்டும். இந்த தகவலை மெட்டாடேட்டா என்று அழைக்கப்படுகிறது, ஏனெனில் இது மற்ற தரவை விவரிக்கும் தரவு.

லினக்ஸ் எக்ஸ்ட் 4 கோப்பு முறைமையில், ஒவ்வொரு கோப்பு மற்றும் கோப்பகத்திற்கும் அனைத்து மெட்டாடேட்டாவையும் சேமித்து வைக்கும் ஒரு அடிப்படை கட்டமைப்பை வழங்க ஐனோட் மற்றும் அடைவு கட்டமைப்புகள் ஒன்றிணைகின்றன. அவை கர்னல், பயனர் பயன்பாடுகள் அல்லது லினக்ஸ் பயன்பாடுகள் போன்ற மெட்டாடேட்டாவை தேவைப்படும் எவருக்கும் கிடைக்கச் செய்கின்றன. ls, stat, மற்றும் df.

ஐனோட்கள் மற்றும் கோப்பு முறைமை அளவு

ஒரு ஜோடி கட்டமைப்புகள் இருப்பது உண்மைதான் என்றாலும், ஒரு கோப்பு முறைமைக்கு இதைவிட பல தேவைப்படுகிறது. ஒவ்வொரு கட்டமைப்பிலும் ஆயிரக்கணக்கான மற்றும் ஆயிரக்கணக்கான உள்ளன. ஒவ்வொரு கோப்புக்கும் கோப்பகத்திற்கும் ஒரு ஐனோட் தேவைப்படுகிறது, மேலும் ஒவ்வொரு கோப்பும் ஒரு கோப்பகத்தில் இருப்பதால், ஒவ்வொரு கோப்புக்கும் ஒரு அடைவு அமைப்பு தேவைப்படுகிறது. அடைவு கட்டமைப்புகள் அடைவு உள்ளீடுகள் அல்லது "பல்" என்று அழைக்கப்படுகின்றன.

ஒவ்வொரு ஐனோடிலும் ஒரு ஐனோட் எண் உள்ளது, இது ஒரு கோப்பு முறைமையில் தனித்துவமானது. ஒரே ஐனோட் எண் ஒன்றுக்கு மேற்பட்ட கோப்பு முறைமைகளில் தோன்றக்கூடும். இருப்பினும், உங்கள் லினக்ஸ் கணினியில் எத்தனை கோப்பு முறைமைகள் பொருத்தப்பட்டிருந்தாலும், கோப்பு முறைமை ஐடி மற்றும் ஐனோட் எண் ஆகியவை தனித்துவமான அடையாளங்காட்டியை உருவாக்குகின்றன.

நினைவில் கொள்ளுங்கள், லினக்ஸில், நீங்கள் ஒரு வன் அல்லது பகிர்வை ஏற்ற மாட்டீர்கள். பகிர்வில் உள்ள கோப்பு முறைமையை நீங்கள் ஏற்றுவீர்கள், எனவே அதை உணராமல் பல கோப்பு முறைமைகளை வைத்திருப்பது எளிது. ஒற்றை இயக்ககத்தில் உங்களிடம் பல வன் அல்லது பகிர்வுகள் இருந்தால், உங்களிடம் ஒன்றுக்கு மேற்பட்ட கோப்பு முறைமை உள்ளது. அவை ஒரே வகையாக இருக்கலாம் - எல்லா ext4, எடுத்துக்காட்டாக - ஆனால் அவை இன்னும் தனித்துவமான கோப்பு முறைமைகளாக இருக்கும்.

அனைத்து ஐனோட்களும் ஒரே அட்டவணையில் வைக்கப்பட்டுள்ளன. ஒரு ஐனோட் எண்ணைப் பயன்படுத்தி, கோப்பு முறைமை அந்த ஐனோட் அமைந்துள்ள ஐனோட் அட்டவணையில் ஆஃப்செட்டை எளிதில் கணக்கிடுகிறது. ஐனோடில் உள்ள “நான்” குறியீட்டை ஏன் குறிக்கிறது என்பதை நீங்கள் பார்க்கலாம்.

ஐனோட் எண்ணைக் கொண்ட மாறி மூலக் குறியீட்டில் 32-பிட், கையொப்பமிடாத நீண்ட முழு எண்ணாக அறிவிக்கப்படுகிறது. இதன் பொருள் ஐனோட் எண் அதிகபட்ச அளவு 2 ^ 32 உடன் ஒரு முழு மதிப்பு ஆகும், இது 4,294,967,295 வரை கணக்கிடுகிறது - இது 4 பில்லியன் ஐனோட்களுக்கு மேல்.

இது தத்துவார்த்த அதிகபட்சம். நடைமுறையில், கோப்பு முறைமை 16 KB க்கு ஒரு ஐனோடின் இயல்புநிலை விகிதத்தில் கோப்பு முறைமை உருவாக்கப்படும்போது ஒரு ext4 கோப்பு முறைமையில் உள்ள ஐனோட்களின் எண்ணிக்கை தீர்மானிக்கப்படுகிறது. கோப்பு முறைமை பயன்பாட்டில் இருக்கும்போது கோப்புக் கட்டமைப்புகள் பறக்கும்போது உருவாக்கப்படுகின்றன, ஏனெனில் கோப்பு முறைமையில் கோப்புகள் மற்றும் கோப்பகங்கள் உருவாக்கப்படுகின்றன.

உங்கள் கணினியில் ஒரு கோப்பு முறைமையில் எத்தனை ஐனோட்கள் உள்ளன என்பதைக் காண நீங்கள் பயன்படுத்தக்கூடிய கட்டளை உள்ளது. தி -நான் (inodes) விருப்பம் df கட்டளை அதன் வெளியீட்டை ஐனோட்களின் எண்ணிக்கையில் காட்ட அறிவுறுத்துகிறது.

முதல் வன்வட்டில் முதல் பகிர்வில் உள்ள கோப்பு முறைமையைப் பார்க்கப் போகிறோம், எனவே பின்வருவனவற்றை தட்டச்சு செய்கிறோம்:

df -i / dev / sda1

வெளியீடு நமக்கு அளிக்கிறது:

  • கோப்பு முறை: கோப்பு முறைமை குறித்து தெரிவிக்கப்படுகிறது.
  • ஐனோட்கள்: இந்த கோப்பு முறைமையில் உள்ள மொத்த ஐனோட்களின் எண்ணிக்கை.
  • நான் பயன்படுத்தினேன்: பயன்பாட்டில் உள்ள ஐனோட்களின் எண்ணிக்கை.
  • IFree: பயன்பாட்டிற்கு கிடைக்கக்கூடிய மீதமுள்ள ஐனோட்களின் எண்ணிக்கை.
  • நான் பயன்படுத்துகின்ற%: பயன்படுத்தப்பட்ட ஐனோட்களின் சதவீதம்.
  • மீது ஏற்றப்பட்டது: இந்த கோப்பு முறைமைக்கான ஏற்ற புள்ளி.

இந்த கோப்பு முறைமையில் 10 சதவீத ஐனோட்களைப் பயன்படுத்தியுள்ளோம். கோப்புகள் வன் தொகுதிகளில் வன்வட்டில் சேமிக்கப்படுகின்றன. ஒவ்வொரு ஐனோடும் அவை பிரதிநிதித்துவப்படுத்தும் கோப்பின் உள்ளடக்கங்களை சேமிக்கும் வட்டு தொகுதிகளை சுட்டிக்காட்டுகின்றன. உங்களிடம் மில்லியன் கணக்கான சிறிய கோப்புகள் இருந்தால், நீங்கள் வன் இடத்தை விட்டு வெளியேறுவதற்கு முன்பு ஐனோடுகளை விட்டு வெளியேறலாம். இருப்பினும், இது மிகவும் கடினமான பிரச்சினை.

கடந்த காலத்தில், மின்னஞ்சல் செய்திகளை தனித்தனி கோப்புகளாக சேமித்து வைத்த சில அஞ்சல் சேவையகங்கள் (இது சிறிய கோப்புகளின் பெரிய சேகரிப்பிற்கு விரைவாக வழிவகுத்தது) இந்த சிக்கலைக் கொண்டிருந்தது. அந்த பயன்பாடுகள் அவற்றின் பின் முனைகளை தரவுத்தளங்களாக மாற்றியபோது, ​​இது சிக்கலைத் தீர்த்தது. சராசரி வீட்டு அமைப்பு ஐனோடுகளை விட்டு வெளியேறாது, ஏனென்றால் எக்ஸ்ட் 4 கோப்பு முறைமையுடன், கோப்பு முறைமையை மீண்டும் நிறுவாமல் அதிக ஐனோட்களை சேர்க்க முடியாது.

உங்கள் கோப்பு முறைமையில் வட்டு தொகுதிகளின் அளவைக் காண, நீங்கள் பயன்படுத்தலாம் blockdev உடன் கட்டளை --getbsz (தொகுதி அளவைப் பெறுக) விருப்பம்:

sudo blockdev --getbsz / dev / sda

தொகுதி அளவு 4096 பைட்டுகள்.

பயன்படுத்தலாம் -பி (தொகுதி அளவு) 4096 பைட்டுகளின் தொகுதி அளவைக் குறிப்பிடவும், வழக்கமான வட்டு பயன்பாட்டை சரிபார்க்கவும்:

df -B 4096 / dev / sda1

இந்த வெளியீடு நமக்குக் காட்டுகிறது:

  • கோப்பு முறை: நாங்கள் புகாரளிக்கும் கோப்பு முறைமை.
  • 4 கே-தொகுதிகள்: இந்த கோப்பு முறைமையில் மொத்தம் 4 KB தொகுதிகள்.
  • பயன்படுத்தப்பட்டது: எத்தனை 4 கே தொகுதிகள் பயன்பாட்டில் உள்ளன.
  • கிடைக்கிறது: பயன்பாட்டிற்கு கிடைக்கக்கூடிய மீதமுள்ள 4 KB தொகுதிகளின் எண்ணிக்கை.
  • % பயன்படுத்தவும்: பயன்படுத்தப்பட்ட 4 KB தொகுதிகளின் சதவீதம்.
  • மீது ஏற்றப்பட்டது: இந்த கோப்பு முறைமைக்கான ஏற்ற புள்ளி.

எங்கள் எடுத்துக்காட்டில், கோப்பு சேமிப்பு (மற்றும் ஐனோட்கள் மற்றும் அடைவு கட்டமைப்புகளின் சேமிப்பு) இந்த கோப்பு முறைமையில் 28 சதவீத இடத்தைப் பயன்படுத்தியுள்ளது, 10 சதவீத ஐனோட்களின் செலவில், எனவே நாங்கள் நல்ல நிலையில் இருக்கிறோம்.

ஐனோட் மெட்டாடேட்டா

ஒரு கோப்பின் ஐனோட் எண்ணைக் காண, நாம் பயன்படுத்தலாம் ls உடன் -நான் (ஐனோட்) விருப்பம்:

ls -i geek.txt

இந்த கோப்பிற்கான ஐனோட் எண் 1441801 ஆகும், எனவே இந்த ஐனோட் இந்த கோப்பிற்கான மெட்டாடேட்டாவை வைத்திருக்கிறது, மேலும் பாரம்பரியமாக, வன் தொகுதிகளில் சுட்டிகள் வன் வன்வட்டில் இருக்கும். கோப்பு துண்டு துண்டாகவோ, மிகப் பெரியதாகவோ அல்லது இரண்டாகவோ இருந்தால், ஐனோட் புள்ளிகள் சில தொகுதிகள் மற்ற வட்டு தொகுதிகளுக்கு மேலும் சுட்டிகள் வைத்திருக்கக்கூடும். வேறு சில வட்டு தொகுதிகள் மற்றொரு வட்டு தொகுதிகளுக்கு சுட்டிகள் வைத்திருக்கக்கூடும். இது ஐனோடின் நிலையான அளவு மற்றும் வட்டுத் தொகுதிகளுக்கு வரையறுக்கப்பட்ட எண்ணிக்கையிலான சுட்டிகள் வைத்திருக்கக்கூடிய சிக்கலைக் கடக்கிறது.

அந்த முறை ஒரு புதிய திட்டத்தால் முறியடிக்கப்பட்டது, அது "நீட்டிப்புகளை" பயன்படுத்துகிறது. கோப்பைச் சேமிக்கப் பயன்படுத்தப்படும் ஒவ்வொரு தொடர்ச்சியான தொகுதிகளின் தொடக்க மற்றும் இறுதித் தொகுப்பை இவை பதிவு செய்கின்றன. கோப்பு பிரிக்கப்படாததாக இருந்தால், நீங்கள் முதல் தொகுதி மற்றும் கோப்பு நீளத்தை மட்டுமே சேமிக்க வேண்டும். கோப்பு துண்டு துண்டாக இருந்தால், கோப்பின் ஒவ்வொரு பகுதியின் முதல் மற்றும் கடைசி தொகுதியை நீங்கள் சேமிக்க வேண்டும். இந்த முறை (வெளிப்படையாக) மிகவும் திறமையானது.

உங்கள் கோப்பு முறைமை வட்டு தொகுதி சுட்டிகள் அல்லது நீட்டிப்புகளைப் பயன்படுத்துகிறதா என்பதைப் பார்க்க விரும்பினால், நீங்கள் ஒரு ஐனோடில் பார்க்கலாம். அவ்வாறு செய்ய, நாங்கள் அதைப் பயன்படுத்துவோம் பிழைத்திருத்தங்கள் உடன் கட்டளை -ஆர் (கோரிக்கை) விருப்பம், மற்றும் வட்டி கோப்பின் ஐனோடை அனுப்பவும். இது கேட்கிறதுபிழைத்திருத்தங்கள் ஐனோடின் உள்ளடக்கங்களைக் காண்பிக்க அதன் உள் “stat” கட்டளையைப் பயன்படுத்த. ஐனோட் எண்கள் ஒரு கோப்பு முறைமையில் மட்டுமே தனித்துவமானவை என்பதால், நாமும் சொல்ல வேண்டும் பிழைத்திருத்தங்கள் ஐனோட் வசிக்கும் கோப்பு முறைமை.

இந்த எடுத்துக்காட்டு கட்டளை எப்படி இருக்கும் என்பது இங்கே:

sudo debugfs -R "stat" / dev / sda1

கீழே காட்டப்பட்டுள்ளபடி, தி பிழைத்திருத்தங்கள் கட்டளை ஐனோடில் இருந்து தகவல்களைப் பிரித்தெடுத்து அதை நமக்கு முன்வைக்கிறது குறைவாக:

பின்வரும் தகவலை நாங்கள் காண்பித்தோம்:

  • ஐனோட்: நாங்கள் பார்க்கும் ஐனோடின் எண்ணிக்கை.
  • வகை: இது ஒரு வழக்கமான கோப்பு, ஒரு அடைவு அல்லது குறியீட்டு இணைப்பு அல்ல.
  • பயன்முறை: ஆக்டலில் கோப்பு அனுமதிகள்.
  • கொடிகள்: வெவ்வேறு அம்சங்கள் அல்லது செயல்பாட்டைக் குறிக்கும் குறிகாட்டிகள். 0x80000 என்பது “நீட்டிப்புகள்” கொடி (இது கீழே மேலும்).
  • தலைமுறை: நெட்வொர்க் கோப்பு முறைமை (என்எஃப்எஸ்) தொலைநிலை கோப்பு முறைமைகளை ஒரு பிணைய இணைப்பில் அணுகும்போது உள்ளூர் கணினியில் ஏற்றப்பட்டதைப் போல இதைப் பயன்படுத்துகிறது. கோப்பு கைப்பிடியின் வடிவமாக ஐனோட் மற்றும் தலைமுறை எண்கள் பயன்படுத்தப்படுகின்றன.
  • பதிப்பு: ஐனோட் பதிப்பு.
  • பயனர்: கோப்பின் உரிமையாளர்.
  • குழு: கோப்பின் குழு உரிமையாளர்.
  • திட்டம்: எப்போதும் பூஜ்ஜியமாக இருக்க வேண்டும்.
  • அளவு: கோப்பின் அளவு.
  • கோப்பு ACL: கோப்பு அணுகல் கட்டுப்பாட்டு பட்டியல். உரிமையாளர் குழுவில் இல்லாத நபர்களுக்கு கட்டுப்படுத்தப்பட்ட அணுகலை வழங்க உங்களை அனுமதிக்கும் வகையில் இவை வடிவமைக்கப்பட்டுள்ளன.
  • இணைப்புகள்: கோப்பிற்கான கடின இணைப்புகளின் எண்ணிக்கை.
  • பிளாக்கவுண்ட்: இந்த கோப்புக்கு ஒதுக்கப்பட்ட வன் இடத்தின் அளவு, 512-பைட் துகள்களில் கொடுக்கப்பட்டுள்ளது. எங்கள் கோப்பு இவற்றில் எட்டு ஒதுக்கப்பட்டுள்ளது, இது 4,096 பைட்டுகள். எனவே, எங்கள் 98-பைட் கோப்பு ஒரு 4,096-பைட் வட்டு தொகுதிக்குள் அமர்ந்திருக்கிறது.
  • துண்டு: இந்த கோப்பு துண்டு துண்டாக இல்லை. (இது வழக்கற்றுப்போன கொடி.)
  • நேரம்: கோப்பு உருவாக்கப்பட்ட நேரம்.
  • ஒரு முறை: இந்த கோப்பு கடைசியாக அணுகப்பட்ட நேரம்.
  • நேரம்: இந்த கோப்பு கடைசியாக மாற்றியமைக்கப்பட்ட நேரம்.
  • Crtime: கோப்பு உருவாக்கப்பட்ட நேரம்.
  • கூடுதல் ஐனோட் புலங்களின் அளவு: எக்ஸ்ட் 4 கோப்பு முறைமை வடிவமைப்பு நேரத்தில் ஒரு பெரிய ஆன்-டிஸ்க் ஐனோடை ஒதுக்கும் திறனை அறிமுகப்படுத்தியது. இந்த மதிப்பு ஐனோட் பயன்படுத்தும் கூடுதல் பைட்டுகளின் எண்ணிக்கை. புதிய கர்னல்களுக்கான எதிர்கால தேவைகளுக்கு ஏற்ப அல்லது நீட்டிக்கப்பட்ட பண்புகளை சேமிக்கவும் இந்த கூடுதல் இடம் பயன்படுத்தப்படலாம்.
  • ஐனோட் செக்சம்: இந்த ஐனோடிற்கான ஒரு செக்சம், இது ஐனோட் சிதைந்திருக்கிறதா என்பதைக் கண்டறிய உதவுகிறது.
  • நீட்டிப்புகள்: நீட்டிப்புகள் பயன்படுத்தப்பட்டால் (ext4 இல், அவை இயல்பாகவே), கோப்புகளின் வட்டு தொகுதி பயன்பாடு தொடர்பான மெட்டாடேட்டாவில் இரண்டு எண்கள் உள்ளன, அவை துண்டு துண்டான கோப்பின் ஒவ்வொரு பகுதியின் தொடக்க மற்றும் இறுதி தொகுதிகளைக் குறிக்கின்றன. ஒரு கோப்பின் ஒவ்வொரு பகுதியும் எடுக்கும் ஒவ்வொரு வட்டுத் தொகுதியையும் சேமிப்பதை விட இது மிகவும் திறமையானது. இந்த தொகுதி ஆஃப்செட்டில் எங்கள் சிறிய கோப்பு ஒரு வட்டுத் தொகுதியில் அமர்ந்திருப்பதால் எங்களுக்கு ஒரு அளவு உள்ளது.

கோப்பு பெயர் எங்கே?

கோப்பு பற்றி இப்போது எங்களிடம் நிறைய தகவல்கள் உள்ளன, ஆனால், நீங்கள் கவனித்தபடி, கோப்பு பெயர் எங்களுக்கு கிடைக்கவில்லை. அடைவு அமைப்பு செயல்பாட்டுக்கு வருவது இங்குதான். லினக்ஸில், ஒரு கோப்பைப் போலவே, ஒரு கோப்பகத்தில் ஒரு ஐனோட் உள்ளது. கோப்பு தரவைக் கொண்ட வட்டுத் தொகுதிகளைச் சுட்டிக்காட்டுவதற்குப் பதிலாக, ஒரு அடைவு ஐனோட் அடைவு கட்டமைப்புகளைக் கொண்ட வட்டுத் தொகுதிகளை சுட்டிக்காட்டுகிறது.

ஒரு ஐனோடோடு ஒப்பிடும்போது, ​​ஒரு கோப்பக கட்டமைப்பில் ஒரு கோப்பைப் பற்றிய குறிப்பிட்ட அளவு தகவல்கள் உள்ளன. இது கோப்பின் ஐனோட் எண், பெயர் மற்றும் பெயரின் நீளம் ஆகியவற்றை மட்டுமே வைத்திருக்கும்.

ஒரு கோப்பு அல்லது கோப்பகத்தைப் பற்றி நீங்கள் (அல்லது ஒரு பயன்பாடு) தெரிந்து கொள்ள வேண்டிய அனைத்தையும் ஐனோட் மற்றும் அடைவு அமைப்பு கொண்டுள்ளது. அடைவு அமைப்பு ஒரு அடைவு வட்டு தொகுப்பில் உள்ளது, எனவே கோப்பு உள்ள கோப்பகத்தை நாங்கள் அறிவோம். அடைவு அமைப்பு கோப்பு பெயர் மற்றும் ஐனோட் எண்ணை நமக்கு வழங்குகிறது. நேர முத்திரைகள், அனுமதிகள் மற்றும் கோப்பு முறைமையில் கோப்புத் தரவை எங்கு கண்டுபிடிப்பது உள்ளிட்ட கோப்பைப் பற்றிய எல்லாவற்றையும் ஐனோட் சொல்கிறது.

அடைவு ஐனோட்கள்

கோப்பகங்களுக்கான ஐனோட் எண்ணை நீங்கள் கோப்புகளுக்குக் காண முடிந்தவரை எளிதாகக் காணலாம்.

பின்வரும் எடுத்துக்காட்டில், நாங்கள் பயன்படுத்துவோம் ls உடன் -l (நீண்ட வடிவம்), -நான் (ஐனோட்), மற்றும் -d (அடைவு) விருப்பங்கள், மற்றும் பாருங்கள் வேலை அடைவு:

ls -lid work /

ஏனெனில் நாங்கள் பயன்படுத்தினோம் -d (அடைவு) விருப்பம்,ls கோப்பகத்தில் அறிக்கைகள், அதன் உள்ளடக்கங்கள் அல்ல. இந்த கோப்பகத்திற்கான ஐனோட் 1443016 ஆகும்.

அதை மீண்டும் செய்ய வீடு அடைவு, நாங்கள் பின்வருவனவற்றை தட்டச்சு செய்கிறோம்:

ls -lid ~

க்கான ஐனோட் வீடு அடைவு 1447510, மற்றும் வேலை அடைவு வீட்டு அடைவில் உள்ளது. இப்போது, ​​இன் உள்ளடக்கங்களைப் பார்ப்போம் வேலை அடைவு. அதற்கு பதிலாக-d (அடைவு) விருப்பம், நாங்கள் பயன்படுத்துவோம் -அ (அனைத்தும்) விருப்பம். இது பொதுவாக மறைக்கப்பட்டிருக்கும் அடைவு உள்ளீடுகளை நமக்குக் காண்பிக்கும்.

பின்வருவனவற்றை நாங்கள் தட்டச்சு செய்கிறோம்:

ls -lia work /

ஏனெனில் நாங்கள் பயன்படுத்தினோம் -அ (அனைத்தும்) விருப்பம், ஒற்றை- (.) மற்றும் இரட்டை-புள்ளி (..) உள்ளீடுகள் காட்டப்படும். இந்த உள்ளீடுகள் கோப்பகத்தையும் (ஒற்றை-புள்ளி), மற்றும் அதன் பெற்றோர் கோப்பகத்தையும் (இரட்டை-புள்ளி.) குறிக்கும்

ஒற்றை-புள்ளி நுழைவுக்கான ஐனோட் எண்ணைப் பார்த்தால், அது 1443016 that அதற்கான ஐனோட் எண்ணைக் கண்டுபிடித்தபோது எங்களுக்கு கிடைத்த அதே ஐனோட் எண் வேலை அடைவு. மேலும், இரட்டை-புள்ளி நுழைவுக்கான ஐனோட் எண், ஐனோட் எண்ணுக்கு சமம் வீடு அடைவு.

அதனால்தான் நீங்கள் இதைப் பயன்படுத்தலாம் சி.டி .. அடைவு மரத்தில் ஒரு நிலை மேலே செல்ல கட்டளை. அதேபோல், நீங்கள் ஒரு பயன்பாடு அல்லது ஸ்கிரிப்ட் பெயருடன் முந்தும்போது./, பயன்பாடு அல்லது ஸ்கிரிப்டை எங்கிருந்து தொடங்குவது என்பதை ஷெல்லுக்கு தெரியப்படுத்துங்கள்.

ஐனோட்கள் மற்றும் இணைப்புகள்

நாங்கள் உள்ளடக்கியுள்ளபடி, கோப்பு முறைமையில் நன்கு உருவாக்கப்பட்ட மற்றும் அணுகக்கூடிய கோப்பை வைத்திருக்க மூன்று கூறுகள் தேவைப்படுகின்றன: கோப்பு, அடைவு அமைப்பு மற்றும் ஐனோட். கோப்பு என்பது வன்வட்டில் சேமிக்கப்பட்ட தரவு, அடைவு கட்டமைப்பில் கோப்பின் பெயர் மற்றும் அதன் ஐனோட் எண் ஆகியவை உள்ளன, மேலும் ஐனோட் கோப்பிற்கான அனைத்து மெட்டாடேட்டாவையும் கொண்டுள்ளது.

குறியீட்டு இணைப்புகள் கோப்புகளைப் போல இருக்கும் கோப்பு முறைமை உள்ளீடுகள், ஆனால் அவை உண்மையில் இருக்கும் கோப்பு அல்லது கோப்பகத்தை சுட்டிக்காட்டும் குறுக்குவழிகள். இதை அவர்கள் எவ்வாறு நிர்வகிக்கிறார்கள், இதை அடைய மூன்று கூறுகள் எவ்வாறு பயன்படுத்தப்படுகின்றன என்பதைப் பார்ப்போம்.

இரண்டு கோப்புகளைக் கொண்ட ஒரு கோப்பகத்தை நாங்கள் பெற்றுள்ளோம் என்று சொல்லலாம்: ஒன்று ஸ்கிரிப்ட், மற்றொன்று கீழே காட்டப்பட்டுள்ளபடி ஒரு பயன்பாடு.

நாம் ln கட்டளை மற்றும் -s (குறியீட்டு) ஸ்கிரிப்ட் கோப்பிற்கு மென்மையான இணைப்பை உருவாக்க விருப்பம்,

ls -s my_script geek.sh

இதற்கான இணைப்பை உருவாக்கியுள்ளோம் my_script.sh என்று geek.sh. நாம் பின்வருவதைத் தட்டச்சு செய்து பயன்படுத்தலாம்ls இரண்டு ஸ்கிரிப்ட் கோப்புகளைப் பார்க்க:

ls -li * .sh

க்கான நுழைவு geek.sh நீல நிறத்தில் தோன்றும். அனுமதி கொடிகளின் முதல் எழுத்து இணைப்பிற்கான “எல்” ஆகும், மற்றும்-> சுட்டிக்காட்டுகிறது my_script.sh . இவை அனைத்தும் அதைக் குறிக்கின்றன geek.sh ஒரு இணைப்பு.

நீங்கள் எதிர்பார்ப்பது போல, இரண்டு ஸ்கிரிப்ட் கோப்புகளும் வெவ்வேறு ஐனோட் எண்களைக் கொண்டுள்ளன. இன்னும் ஆச்சரியமான விஷயம் என்னவென்றால், மென்மையான இணைப்பு, geek.sh, அசல் ஸ்கிரிப்ட் கோப்பின் அதே பயனர் அனுமதிகள் இல்லை. உண்மையில், அதற்கான அனுமதிகள்geek.sh மிகவும் தாராளமயமானவை-எல்லா பயனர்களுக்கும் முழு அனுமதிகள் உள்ளன.

க்கான அடைவு அமைப்பு geek.sh இணைப்பின் பெயர் மற்றும் அதன் ஐனோடுகளைக் கொண்டுள்ளது. நீங்கள் இணைப்பைப் பயன்படுத்த முயற்சிக்கும்போது, ​​அதன் ஐனோட் வழக்கமான கோப்பைப் போலவே குறிப்பிடப்படுகிறது. இணைப்பு ஐனோட் ஒரு வட்டுத் தொகுதியைக் குறிக்கும், ஆனால் கோப்பு உள்ளடக்கத் தரவைக் கொண்டிருப்பதற்குப் பதிலாக, வட்டுத் தொகுதி அசல் கோப்பின் பெயரைக் கொண்டுள்ளது. கோப்பு முறைமை அசல் கோப்பிற்கு திருப்பி விடுகிறது.

அசல் கோப்பை நீக்குவோம், மேலும் உள்ளடக்கங்களைக் காண பின்வருவதைத் தட்டச்சு செய்தால் என்ன ஆகும் என்று பார்ப்போம்geek.sh:

rm my_script.sh
பூனை geek.sh

குறியீட்டு இணைப்பு உடைந்துவிட்டது, மற்றும் வழிமாற்றுதல் தோல்வியடைகிறது.

பயன்பாட்டுக் கோப்பிற்கு கடினமான இணைப்பை உருவாக்க பின்வருவதைத் தட்டச்சு செய்கிறோம்:

ln சிறப்பு-பயன்பாட்டு கீக்-பயன்பாடு

இந்த இரண்டு கோப்புகளுக்கான ஐனோட்களைப் பார்க்க, பின்வருவனவற்றைத் தட்டச்சு செய்கிறோம்:

ls -li

இரண்டும் வழக்கமான கோப்புகளைப் போலவே இருக்கும். பற்றி எதுவும் இல்லை கீக்-பயன்பாடு இது ஒரு இணைப்பைக் குறிக்கிறது ls பட்டியல் geek.sh செய்தது. பிளஸ்,கீக்-பயன்பாடு அசல் கோப்பின் அதே பயனர் அனுமதிகளைக் கொண்டுள்ளது. இருப்பினும், ஆச்சரியப்படக்கூடிய விஷயம் என்னவென்றால், இரண்டு பயன்பாடுகளும் ஒரே ஐனோட் எண்ணைக் கொண்டுள்ளன: 1441797.

க்கான அடைவு நுழைவு கீக்-பயன்பாடு “கீக்-பயன்பாடு” மற்றும் ஒரு ஐனோட் எண்ணைக் கொண்டுள்ளது, ஆனால் இது அசல் கோப்பின் ஐனோட் எண்ணைப் போன்றது. எனவே, வெவ்வேறு பெயர்களைக் கொண்ட இரண்டு கோப்பு முறைமை உள்ளீடுகள் உள்ளன, அவை இரண்டும் ஒரே ஐனோடை சுட்டிக்காட்டுகின்றன. உண்மையில், எந்தவொரு உருப்படிகளும் ஒரே ஐனோடை சுட்டிக்காட்டலாம்.

பின்வருவனவற்றைத் தட்டச்சு செய்து பயன்படுத்துவோம் stat இலக்கு கோப்பைப் பார்க்க நிரல்:

stat சிறப்பு பயன்பாடு

இரண்டு கடின இணைப்புகள் இந்த கோப்பை சுட்டிக்காட்டுகின்றன. இது ஐனோடில் சேமிக்கப்படுகிறது.

பின்வரும் எடுத்துக்காட்டில், அசல் கோப்பை நீக்கி, ரகசியமான, பாதுகாப்பான கடவுச்சொல்லுடன் இணைப்பைப் பயன்படுத்த முயற்சிக்கிறோம்:

rm சிறப்பு பயன்பாடு
./geek-app correcthorsebatterystaple

ஆச்சரியப்படும் விதமாக, பயன்பாடு எதிர்பார்த்தபடி இயங்குகிறது, ஆனால் எப்படி? இது இயங்குகிறது, ஏனெனில் நீங்கள் ஒரு கோப்பை நீக்கும்போது, ​​ஐனோட் மீண்டும் பயன்படுத்த இலவசம். அடைவு அமைப்பு பூஜ்ஜியத்தின் ஐனோட் எண்ணைக் கொண்டதாகக் குறிக்கப்படுகிறது, பின்னர் வட்டுத் தொகுதிகள் மற்றொரு கோப்பை அந்த இடத்தில் சேமிக்கக் கிடைக்கும்.

ஐனோடிற்கான கடின இணைப்புகளின் எண்ணிக்கை ஒன்றுக்கு அதிகமாக இருந்தால், கடின இணைப்பு எண்ணிக்கை ஒன்றால் குறைக்கப்படுகிறது, மேலும் நீக்கப்பட்ட கோப்பின் அடைவு கட்டமைப்பின் ஐனோட் எண் பூஜ்ஜியமாக அமைக்கப்படுகிறது. வன் மற்றும் ஐனோடில் உள்ள கோப்பு உள்ளடக்கங்கள் தற்போதுள்ள வன் இணைப்புகளுக்கு இன்னும் கிடைக்கின்றன.

நாங்கள் பின்வருவனவற்றைத் தட்டச்சு செய்து மீண்டும் ஒரு முறை புள்ளிவிவரத்தைப் பயன்படுத்துவோம் - இந்த நேரத்தில் கீக்-பயன்பாடு:

stat கீக்-பயன்பாடு

இந்த விவரங்கள் முந்தைய ஐனோடில் (1441797) இருந்து இழுக்கப்படுகின்றன stat கட்டளை. இணைப்பு எண்ணிக்கை ஒன்று குறைக்கப்பட்டது.

நாங்கள் நீக்கினால், இந்த ஐனோடிற்கான ஒரு கடினமான இணைப்பைக் கொண்டுள்ளோம்கீக்-பயன்பாடு, இது உண்மையிலேயே கோப்பை நீக்கும். கோப்பு முறைமை ஐனோடை விடுவித்து, அடைவு கட்டமைப்பை பூஜ்ஜியத்தின் ஐனோடால் குறிக்கும். ஒரு புதிய கோப்பு பின்னர் வன்வட்டில் தரவு சேமிப்பிடத்தை மேலெழுத முடியும்.

தொடர்புடையது:லினக்ஸில் ஸ்டேட் கட்டளையை எவ்வாறு பயன்படுத்துவது

ஐனோட் மேல்நிலைகள்

இது ஒரு சுத்தமான அமைப்பு, ஆனால் மேல்நிலைகள் உள்ளன. ஒரு கோப்பைப் படிக்க, கோப்பு முறைமை பின்வரும் அனைத்தையும் செய்ய வேண்டும்:

  • சரியான அடைவு கட்டமைப்பைக் கண்டறியவும்
  • ஐனோட் எண்ணைப் படியுங்கள்
  • சரியான ஐனோடைக் கண்டறியவும்
  • ஐனோட் தகவலைப் படியுங்கள்
  • தொடர்புடைய வட்டு தொகுதிகளுக்கு ஐனோட் இணைப்புகள் அல்லது நீட்டிப்புகளைப் பின்பற்றவும்
  • கோப்பு தரவைப் படியுங்கள்

தரவு தொடர்ச்சியாக இல்லாவிட்டால் இன்னும் கொஞ்சம் அதிகமாக குதிப்பது அவசியம்.

செய்ய வேண்டிய வேலையை கற்பனை செய்து பாருங்கள்ls பல கோப்புகளின் நீண்ட வடிவ கோப்பு பட்டியலைச் செய்ய. முன்னும் பின்னுமாக நிறைய உள்ளன ls அதன் வெளியீட்டை உருவாக்க தேவையான தகவலைப் பெற.

நிச்சயமாக, கோப்பு முறைமை அணுகலை விரைவுபடுத்துவதே லினக்ஸ் முடிந்தவரை முன்கூட்டியே கோப்பு கேச்சிங் செய்ய முயற்சிக்கிறது. இது பெரிதும் உதவுகிறது, ஆனால் சில நேரங்களில் any எந்தவொரு கோப்பு முறைமையையும் போலவே - மேல்நிலைகளும் வெளிப்படையாகத் தெரியும்.

அதற்கான காரணம் இப்போது உங்களுக்குத் தெரியும்.


$config[zx-auto] not found$config[zx-overlay] not found