உதாரணம் "xargs" கட்டளை பயன்படுத்துகிறது

விளக்கம் மற்றும் அறிமுகம்

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

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

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

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

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

ls | xargs -n 5 எதிரொலி

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

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

பின்வரும் கட்டளை வரி பகிர்வுகள் உருவாக்கப்படும் கோப்பு பெயர்களின் ஸ்ட்ரீம் 200 குழுக்கள், cp கட்டளைக்கு அனுப்பப்படுவதற்கு முன் அவற்றை காப்பு பிரதி அடைவுக்கு நகலெடுக்கிறது.

கண்டுபிடிக்க ./- வகை f- பெயர் "* .txt" -print | xargs -l200 -i cp -f {} ./backup

கண்டுபிடி கட்டளையில் உள்ள "./" உறுப்பு தேடுவதற்கான தற்போதைய கோப்பகத்தை குறிப்பிடுகிறது. "-type f" வாதம் கோப்புகளை தேடலை கட்டுப்படுத்துகிறது, மற்றும் "-name" * .txt "கொடி மேலும் ஒரு" .txt "நீட்டிப்பு இல்லாத எதையும் வடிகட்டுகிறது. Xargs சமிக்ஞைகளில் உள்ள -i flag { } குறியீடானது நீராவி ஒவ்வொரு கோப்பு பெயரையும் குறிக்கிறது.

பின்வரும் கட்டளையானது அடைவு / tmp இல் உள்ள கோல்களில் உள்ள கோர்வைக் கண்டறிந்து அவற்றை நீக்குகிறது.

/ tmp -name core -type f -print | xargs / bin / rm -f

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

/ tmp -name core -type f -print0 | கண்டுபிடிக்கவும் xargs -0 / bin / rm -f

-i விருப்பத்திற்குப் பதிலாக நீங்கள் -I கொடி பயன்படுத்தலாம், இது இந்த எடுத்துக்காட்டில் உள்ள கட்டளைகளை உள்ள உள்ளீட்டு வரியில் உள்ளீடு கோட்டைப் பதிலாக குறிப்பிடுகிறது:

ls dir1 | xargs -I {} -t mv dir1 / {} dir / {} / code>

மாற்று சரம் "{}" என வரையறுக்கப்படுகிறது. இதன் பொருள், கட்டளை வாதங்களில் உள்ள "{}" இன் எந்த நிகழ்வையும் குழாய் செயல்பாட்டின் மூலம் விவாதிக்கப்படும் உள்ளீடு உறுப்பு மூலம் மாற்றப்படுகிறது. கட்டளைகளின் வாதங்களில் (மீண்டும் மீண்டும்) நிறைவேற்றப்படக்கூடிய குறிப்பிட்ட பதவிகளில் உள்ளீடு கூறுகளை வைக்க இது உதவுகிறது.