ஒரு கோப்பகத்தில் உள்ள கோப்புகள் மூலம் பேஷ் லூப்

Bash Loop Through Files Directory



உபுண்டுவில், பாஷ் உட்பட, சுழல்கள் பல கோப்புகளில் செயல்பாடுகளைப் பயன்படுத்துவதை சாத்தியமாக்கியுள்ளன. ஒரு சிறிய குறியீட்டு வரியைப் பயன்படுத்துவதன் மூலம் பயனருக்கு உருப்படிக்கு ஒரே தர்க்கத்தை மீண்டும் மீண்டும் பயன்படுத்த அனுமதிப்பதால் சுழல்வது மிகவும் பயனுள்ள விஷயம்.

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







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



$பேஷ்-மாற்றம்



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





ஒரு கோப்பகத்தை உருவாக்குவதே முதல் படி. எபிசி கோப்பகத்தின் மாதிரி பெயரை எடுத்துள்ளோம். கட்டளையை செயல்படுத்துவதன் மூலம் ஒரு கோப்பகத்தை உருவாக்கவும்.

$mkdirabc



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

$குறுவட்டுabc

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

$தொடுதல்file1.txt

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

$வெளியே எறிந்தார்லினக்ஸ், உபுண்டு, Postgresql>file7.txt

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

$தொடுதல்கோப்பு-{1..8}.txt

.Txt நீட்டிப்புகளின் புதிய கோப்புகளில் இந்த கட்டளையைப் பயன்படுத்துவதன் மூலம் ஒரு கட்டளையைப் பயன்படுத்தி உருவாக்கப்படும்.

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

$க்கான கோப்பு இல் *;செய் வெளியே எறிந்தார் $ கோப்பு;முடிந்தது

* இந்த கோப்பகத்தில் உள்ள அனைத்து கோப்புகளுக்கும் பயன்படுத்தப்படுகிறது. இது 'for' லூப் அனைத்து கோப்புகளையும் கைப்பற்ற அனுமதிக்கிறது. ஆனால் வெளியீட்டை துல்லியமாக்க, நட்சத்திரக் குறியுடன் சில சொற்களைச் சேர்க்கலாம். உதாரணமாக, கோப்பில் இருந்து தொடங்கும் அனைத்து கோப்புகளுக்கும் ‘கோப்பு-*’ பயன்படுத்தப்படுகிறது. .Txt நீட்டிப்புகளைக் கொண்ட கோப்புகளைப் பெற *.txt. இந்த எடுத்துக்காட்டுகளை கட்டுரையில் மேலும் பயன்படுத்துவோம்.

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

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

$க்கான கோப்பு இல் *;செய் வெளியே எறிந்தார் -2 $ கோப்பு n லினக்ஸ் உபுண்டு> $ கோப்பு;முடிந்தது

கட்டளையை செயல்படுத்திய பிறகு, நாம் உருவாக்கிய ஒவ்வொரு கோப்பிலும் மதிப்பு உள்ளிடப்பட்டுள்ளது. எதிரொலியுடன் பயன்படுத்தும் போது, ​​'-e' கொடி கோப்பில் புதிய வரியை பாதுகாக்கும். உள்ளிடப்பட்ட தரவைப் பார்க்க, நீங்கள் 'abc' கோப்பகத்திற்கு செல்லலாம். இப்போது எந்த உரை கோப்பையும் திறக்கவும். கோப்பு காலியாக இல்லை.

'$ கோப்பு கோப்பில் முதலில் கோப்பு பெயரைக் காட்டும், நீங்கள் உள்ளிட்ட தரவு இரண்டாவது வரியில் முன்னோட்டமிடப்படும், ஏனெனில் இதற்குப் பிறகு பயன்படுத்தப்படும் சொற்களை மற்றொரு வரியில் மாற்றப் பயன்படுகிறது. கட்டளை மூலம் உள்ளிடப்பட்ட தரவையும் நீங்கள் சரிபார்க்கலாம்.

$க்கான கோப்பு இல் *;செய் பூனை $ கோப்பு;முடிந்தது

கோப்பகத்தின் அனைத்து கோப்புகளிலும் உள்ள தரவைப் பெற பூனை கட்டளை பயன்படுத்தப்படுகிறது.

தரவை உள்ளிடுதல் மற்றும் பெறுதல் ஆகிய இரண்டையும் ஒரே கட்டளை மூலம் செய்ய முடியும்.

$க்கான கோப்பு இல் *;செய் வெளியே எறிந்தார்மற்றும் மற்றும்$ கோப்புபேஷ் புரோகிராமிங்> $ கோப்பு;பூனை $ கோப்பு;முடிந்தது

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

ஒவ்வொரு கோப்பும் ஒரே மதிப்பைக் கொண்டுள்ளது. இதற்கு 'ஃபார்' லூப் தான் காரணம்.

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

$க்கான கோப்பு இல் *;செய் cp $ கோப்பு $ கோப்பு.பின்னால்;முடிந்தது;

அனைத்து கோப்புகளையும் காப்புப் பிரதி எடுக்க cp முக்கிய சொல் பயன்படுத்தப்படுகிறது. இப்போது இந்த கட்டளை பயன்படுத்தப்படும் கோப்புகளை பார்க்க. நாங்கள் கட்டளையைப் பயன்படுத்துகிறோம்:

$ls- தி

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

நாம் jpeg கோப்புகளை மட்டுமே விரும்பினால். கட்டளையில் இதைப் பயன்படுத்துவோம்

$க்கான கோப்பு இல் *.jpeg;செய் வெளியே எறிந்தார் $ கோப்பு;முடிந்தது

இது படங்களின் பெயர்களை மட்டுமே கொண்டு வரும்.

ஒரு எளிய கண்டுபிடிப்பும் அதே செயல்பாட்டைச் செய்ய முடியும். இது .sh ​​இன் நீட்டிப்புடன் அனைத்து கோப்புகளையும் பெறும்.

$கண்டுபிடிக்க - பெயர்*sh

ஒரு வளையத்திற்கான கண்டுபிடிப்பான முக்கிய வார்த்தையைப் பயன்படுத்துவோம்.

$க்கான கோப்பு இல் *;செய்கண்டுபிடிக்க கோப்பு.*;முடிந்தது

இது அனைத்து கோப்புகளையும் தற்போதைய கோப்பகத்திற்கு கொண்டு வரும். இவை .bak, .jpeg, .txt இன் நீட்டிப்புகளைக் கொண்டுள்ளன. முதலியன

இப்போது, ​​நீங்கள் அனைத்து அடைவு கோப்புகளின் பெயரையும் அவற்றிற்குள் உள்ள தரவையும் பார்க்க விரும்பினால், இது 'for' லூப்பால் செய்யப்படுகிறது.

$க்கான கோப்பு இல் *;செய் கோப்பு $ கோப்பு;முடிந்தது

முடிவுரை

எந்தவொரு கோப்பகத்திலும் உள்ள கோப்புகளைச் சுற்றுவது இனி கடினமாக இருக்காது, நமக்குத் தெரிந்தபடி, பாஷில் சுழல்களைப் பயன்படுத்துதல் மற்றும் லினக்ஸ் இயக்க முறைமைகளில் செயல்படுவது. இந்த டுடோரியல் ஒரு 'ஃபார்' லூப் பயன்படுத்தி அடைவில் செயல்பாடுகளை உருவாக்குவதற்கும், அணுகுவதற்கும் மற்றும் செயல்படுத்துவதற்கும் ஒரு முழுமையான வழிகாட்டியாகும்.