ఉదాహరణ "xargs" కమాండ్ యొక్క ఉపయోగాలు

వివరణ మరియు పరిచయం

Xargs ఆదేశం సాధారణంగా కమాండ్ లైన్ లో వాడబడుతుంది, ఇక్కడ ఒక కమాండ్ యొక్క అవుట్పుట్ ఇన్పుట్ వాదనలుగా మరొక కమాండ్కు పంపబడుతుంది.

చాలా సందర్భాలలో, "పైప్" మరియు "రీడైరెక్షన్" ఆపరేటర్లు అదే రకమైన లావాదేవిని నిర్వహిస్తున్నందున, xargs వంటి ప్రత్యేక ఆదేశాలకు ఇది అవసరం లేదు. అయితే, కొన్నిసార్లు ప్రాథమిక పైపింగ్ మరియు మళ్లింపు విధానంతో సమస్యలు ఉన్నాయి, ఉదా. వాదనలు ఖాళీలు ఉంటే, ఆ xargs అధిగమించి ఉంటుంది.

అదనంగా, xargs ఇచ్చిన అన్ని ఆదేశాలను ప్రాసెస్ చేయడానికి, అవసరమైతే, పేర్కొన్న ఆదేశాన్ని అమలు చేస్తుంది. వాస్తవానికి, xuggs పేర్కొన్న ఆదేశాన్ని అమలు చేసే ప్రతిసారి ప్రామాణిక ఇన్పుట్ ప్రసారంను ఎన్ని వాదనలు చదవాలో మీరు పేర్కొనవచ్చు.

సాధారణంగా, ఒక ఆదేశం యొక్క అవుట్పుట్ డేటాను ప్రసారం చేస్తున్న రెండవ కమాండ్ యొక్క ఎంపికలు లేదా వాదాలలో భాగంగా ఉపయోగించినట్లయితే xargs ఆదేశం ఉపయోగించాలి (పైప్ ఆపరేటర్ "|" ఉపయోగించి). రెండో కమాండ్ యొక్క (ప్రామాణిక) ఇన్పుట్గా ఉద్దేశించిన డేటాను క్రమబద్ధంగా పైపింగ్ సరిపోతుంది.

ఉదాహరణకు, మీరు ఫైల్ పేర్లు మరియు డైరెక్టరీల జాబితాను రూపొందించడానికి ls కమాండ్ను ఉపయోగిస్తే, ఆపై ఈ జాబితాను xchos ఆదేశాన్ని ఎగ్జిక్యూట్ చేస్తున్నప్పుడు, ఈ జాబితాను పైప్ చేయుము, మీరు ప్రతి పునరావృత్తిలో ఎన్నిసార్లు మళ్ళింపు ద్వారా ప్రతి ఫైల్ పేర్లను లేదా డైరెక్టరీ పేర్లను ప్రాసెస్ చేస్తారో పేర్కొనవచ్చు :

ls | xargs -n 5 echo

ఈ సందర్భములో, echo ఒక సమయంలో ఐదు ఫైల్ లేదా డైరెక్టరీ పేర్లను అందుకుంటుంది. ఎకో చివరికి కొత్త-లైన్ అక్షరమును జతచేసినందున, ప్రతి పంక్తిలో అయిదు పేర్లు వ్రాయబడతాయి.

మరొక కమాండ్కి పంపే పెద్ద మరియు అనూహ్య సంఖ్యల (ఉదా. ఫైల్ పేర్లు) ను తిరిగి ఇచ్చే కమాండ్ని అమలు చేస్తే, రెండవ ఆదేశం ఓవర్లోడ్ మరియు క్రాష్ నివారించడానికి గరిష్ట సంఖ్యలో వాదనలు నియంత్రించడానికి మంచి ఆలోచన.

కింది కమాండ్ లైన్ విభజనలను సృష్టించే ఫైల్ పేర్ల యొక్క స్ట్రీమ్ 200 సమూహాలను కనుగొని cp కమాండ్కు వెళ్ళేముందు, వాటిని బ్యాకప్ డైరెక్టరీకి కాపీ చేస్తుంది.

కనుగొనండి ./- రకం f -name "* .txt" -print | xargs -l200 -i cp -f {} ./backup

శోధన ఆదేశంలో "./" ఎలిమెంట్ శోధన కోసం ప్రస్తుత డైరెక్టరీని నిర్దేశిస్తుంది. "-type f" వాదన ఫైళ్లను శోధనకు పరిమితం చేస్తుంది మరియు "txt" పొడిగింపు లేని "-name" * .txt "జెండా మరింత ఫిల్టర్ చేస్తుంది, xargs సంకేతాలలోని -i ఫ్లాగ్, } ప్రతిమ ఆవిరి యొక్క ప్రతి ఫైల్ పేరును సూచిస్తుంది.

ఈ క్రింది ఆదేశము డైరెక్టరీ / tmp పైన లేదా క్రింద ఉన్న ఫైళ్లను కలిగి ఉన్న ఫైళ్ళను కనుగొని వాటిని తొలగిస్తుంది.

/ tmp -name కోర్-టైప్ f- ప్రింట్ కనుగొను xargs / bin / rm -f

క్రొత్త లైన్లు, సింగిల్ లేదా డబుల్ కోట్స్ లేదా ఖాళీలు ఉన్న ఏదైనా ఫైల్ పేర్లు ఉంటే ఇది తప్పుగా పని చేస్తుందని గమనించండి. కింది సంస్కరణ ఫైల్ లేదా డైరెక్టరీ పేర్లు సింగిల్ లేదా డబుల్ కోట్లు, ఖాళీలు లేదా క్రొత్త లైన్లు సరిగ్గా నిర్వహించబడుతున్నాయి.

/ tmp -name core -type f -print0 ను కనుగొనండి xargs -0 / bin / rm -f

-i ఐచ్చికాన్ని బట్టి మీరు -I ఫ్లాగ్ను కూడా వాడవచ్చు, ఇది స్ట్రింగ్ను నిర్దేశిస్తుంది, అది ఈ ఉదాహరణలో వాదనలు కమాండ్లో ఇన్పుట్ లైన్ ద్వారా భర్తీ చేయబడుతుంది:

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

భర్తీ స్ట్రింగ్ "{}" గా నిర్వచించబడింది. దీని అర్థం, కమాండ్ వాదాలలో "{}" యొక్క ఏదైనా సంఘటనలు పైప్ ఆపరేషన్ ద్వారా వాదనలు ముందుకు పంపే ఇన్పుట్ మూలకం ద్వారా భర్తీ చేయబడుతుంది. ఇది కమాండ్ యొక్క వాదనలు (పదేపదే) ఉరితీయబడటానికి నిర్దిష్ట స్థానాల్లో ఇన్పుట్ ఎలిమెంట్లను ఉంచడానికి మిమ్మల్ని అనుమతిస్తుంది.