கோப்பகங்களின் அளவு எங்கள் முயற்சிக்கு மதிப்பு இல்லை

இது முற்றிலும் பயனற்றது, நடைமுறை பயன்பாட்டில் தேவையற்றது, ஆனால் *nix அமைப்புகளில் உள்ள கோப்பகங்களைப் பற்றிய வேடிக்கையான சிறிய இடுகை. இது வெள்ளிக்கிழமை.

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

இடுகையைப் புரிந்து கொள்ள, சில புள்ளிகள்:

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

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

$ mkdir niceDir && cd niceDir
# в зависимости от скорости носителя, следующая команда может занять 2-10 минут
$ for ((i=1;i<133700;i++)); do touch long_long_looong_man_sakeru_$i ; done
$ ls -lhd .
drwxr-xr-x 2 user user 8.1M Aug 2 13:37 .
$ find . -type f -delete
$ ls -l
total 0
$ ls -lhd .
drwxr-xr-x 2 user user 8.1M Aug  2 13:37 .

நீங்கள் பார்க்க முடியும் என, கோப்பகத்தின் அளவு மாறவில்லை, அது போல் தோன்றினாலும் :)

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

ஆனால் இது ஏன் என்று நான் பார்க்கச் சென்றபோது, ​​​​10 ஆண்டுகளுக்கு முன்பு இதுபோன்ற நடத்தை ஏற்கனவே இருந்தது விவாதிக்கப்பட்டது lkml இல். டெவலப்பர்களின் கூற்றுப்படி, பிழைத்திருத்தம் வெறுமனே முயற்சிக்கு மதிப்பு இல்லை.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்