அறிவியல்

find கட்டளை

கட்டற்ற மென்பொருளின் ஆரம்ப நிலை கற்றலுக்கான ஒரு‍ சிறிய முயற்சி. இது‍ ஆமாச்சு என்பவரால் கணியம் இணைய இதழில் வெளியான கட்டுரை..

GNU find ஒரு திறம் வாய்ந்த கட்டளை வரி பயனமைப்பு (Command Line Utility) ஆகும். இது கோப்புகளையும், அடவைகளையும் (Files and Folders) படிநிலை மரவமைப்பாக (Hierarchical Tree Structure) தேட பயன்படுகிறது. KDE மற்றும் GNOME-களில் உள்ள வரைகலை தேடல்களுக்கு இதுவே பின்னிலை (Back End) ஆகும். எனினும் find தொடக்கத்தில் பயன்படுத்த கடினமாக இருக்கும்.

இக்கட்டுரையில் நாம் எளியதிலிருந்து கடினமான பயிற்சிக்கு செல்லலாம். நான் find 4.4.2 பதிபபை நிறுவியுள்ளேன். ஏனனில் இது உபுண்டு 12.04 Precise Pangolin மற்றும் Bash 4.2.20 உடன் வருவது (பழைய பதிப்புகளும் நன்றாய் இயங்க வேண்டும்). கூடுதல் தகவல்களுக்கு http://www.commandlinefu.com/ தொடர்பு கொள்ளவும்.

நீங்கள் முனையம்(terminal), கட்டளை-வரி(command-line) அல்லது லினக்ஸ்-ல் பரிட்சையம் அற்றவர் எனில், http://www.tuxarena.com/static/intro_linux_cli.php – ஐ பயன்படுத்துங்கள்.\

File:Find.svgஅடிப்படைகள்:

find

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

find

என்பதும் இதையே செய்கிறது. இதன் செயல்பாட்டை தெளிவாக காண ஒரு சிறிய (கோப்புகள் குறைவாக உள்ள) அடைவில் find கட்டளையை பயன்படுத்தவும்.

find . –name *profile*

(*) என்பது wildcard (முன்பு உரைக்க முடியாத காரணி) ஆகும். இது 0 அல்லது அதற்கும் மேற்பட்ட வரியுருக்களுக்கு(character) மாற்றாகும். மேல் குறிப்பிட்ட கட்டளை *profile* என்ற பெயரை தற்போதைய அடைவில் தேடித் தரும்.

find /usr/share –name FreeSans*

இது /usr/share என்ற அடைவில், “FreeSans*” என்பதை தேடும். இரட்டை மேற்கோள் குறி பயன்படுத்துதல் சிறந்ததாக் இருக்கும்.

(எ.க.)

find –name “*bash”

find /usr/share –name “FreeSans*” | grep Oblique

பெரிய/சிறிய எழுத்துகள்:

சில சூழல்களில் பெரிய/சிறிய எடுத்துகளின் வேறுபாட்டை தவிற்க வேண்டி வரலாம். அதற்கு –name க்கு பதிலாக –iname பயன்படுத்தவும்.

find /usr/share –iname FREESANS*

தேதி:

find . –mtime +3 –iname *somefile*

என்னும் கட்டளை மூன்று நாட்களுக்கு முன்பு உருவாக்கிய கோப்புகளை தேடும்.

find கோப்பின் முழு பாதையையும் பெற்றுத்தரும். இதற்கு மாறாக கோப்புகளை மட்டும் பெற printf பயன்படுத்தவும்.

find /usr/bin –name “alsa*” –printf “%f\n”

அளவைப் பொறுத்து தேடல்:

கோப்புகளின் அளவைப் பெற –size பயன்படுத்தவும்

find /usr –size +500k –name “*png”

இது 500k-க்கும் மேற்பட்ட அளவைக் கொண்ட png என நிறைவு பெறும் கோப்புகளை தேடித் தரும். MB-க்கு M பயன்படுத்தவும்.

find /usr –size +1M –name “*png”

find /usr –size -10c –name “*png”

-10c என்பது 10 byte-க்கும் குறைந்த அளவிலான கோப்புகளைத் தேடித்தரும்.

நேரடியாக கோப்புகளின் விபரங்களைக் காண pipe மற்றும் xargs பயன்படுத்தவும்

find /usr/lib –size +2M –name “*.so” | xargs ls –lh

find எந்த கோப்புகளையும் பெற்றுத்தரவில்லை என்றால் மேல் குறிப்பிட்ட கட்டளை, தற்போதுள்ள அடைவின் கோப்புகளை பெற்றுத் தரும்.

குறிப்பிட்ட சொற்றொடர் கொண்ட கோப்புகளை பெற:

find . –name “*bash*” –exec grep –l “aliases” {}

இது “aliases” என்ற வார்த்தை கொண்ட “*bash*” கோப்புகளை தேடித் தரும்.

இன்னும் சில:

முதல் 20 பெரிய கோப்புகளை பெற

find . –type f –print0 | xargs -0 du –h | sort –hr | head -20

——

கட்டற்ற மென்பொருள் – அறிமுகம்

Related Posts