නිදසුනක් "xargs" විධානය භාවිතා කරන්න

විස්තරය සහ හැදින්වීම

Xargs විධානය සාමාන්යයෙන් විධාන පරාමිතියේ වෙනත් විධානයක් වෙතට ආදාන පරාමිති ලෙස හැඳින්වෙන විධාන රේඛාවක් ලෙස හැඳින්වේ.

බොහෝ අවස්ථාවන්හීදී, "නලය" සහ "හරවා යැවීම" ක්රියාකරුවන් එකම වර්ගයේ ගනුදෙනුවක් සිදු කරන බැවින්, එය ඉටු කිරීම සඳහා අවශ්ය නොවන විධාන අවශ්ය නොවේ. කෙසේ වෙතත්, ඇතැම් අවස්ථාවලදී මූලික නල මාර්ග සහ හරවා යැවීමේ යාන්ත්රණයන් ඇත. උදා.

අතිරේකව, xargs විසින් නියම කරන ලද විධාන නැවත නැවත ක්රියාත්මක කිරීම සඳහා, අවශ්ය නම්, එය ලබා දෙන සියලු තර්ක සකසනු ඇත. ඇත්ත වශයෙන්ම, xargs නිශ්චිත විධාන ක්රියාත්මක කරන සෑම විටම සම්මත ආදාන ප්රවාහයෙන් කියවිය යුතු තර්ක ගණන කොපමණද යන්න සඳහන් කළ හැක.

සාමාන්යයෙන්, xargs විධානය භාවිතා කළ යුත්තේ එක් විධානයක් මඟින් විකල්පයන් හෝ පරාමිතීන්ගේ කොටසක් ලෙස ප්රවාහ (දත්ත සැපයුම්කාරය භාවිතා කරමින් "|") ප්රවාහනය කිරීම සඳහා භාවිතා කළ යුතුය. දත්ත දෙවන ආඥාවෙහි (සම්මත) ආදාන ලෙස භාවිතා කිරීමට අදහස් කළහොත් සාමාන්ය නල සැපයීම ප්රමාණවත් වේ.

උදාහරණයක් ලෙස, ඔබ විසින් ගොනු නාම සහ නාමාවලීන් ලැයිස්තුවක් සාදා ගන්නේ නම්, පසුව echo කේතය ක්රියාත්මක කරන xargs විධානය තුලට ප්රවිශ්ඨ වීම සඳහා, ඔබ එක් එක් පිළිවෙළ අනුව echo විසින් ගොනු නාම හෝ ඩිරෙක්ටර නාමයන් සකසන්නේ කෙලෙසද යන්න නියම කළ හැකිය. :

ls | කූරු -n 5 echo

මෙම අවස්ථාවේ දී, echo එකේ දී ගොනුවක් හෝ ඩිරෙක්ටර පහක් ලැබෙනු ඇත. අවසානයේ දී echo නව පේලියේ අක්ෂර එකතු කරන විට, එක් එක් පේළියේ නම් පහක් ලියා ඇත.

තවත් විධානයක් සඳහා තවත් විධානයක් වෙත මාරු කිරීම සඳහා විශාල හා අනුමාන නොකෙරෙන සංඛ්යා අයිතමයන් (උදා. ගොනු නාමයන්) නැවත ලබා දෙන විධානයක් නම්, අතිරේක ප්රෝටෝරයන් ගණනාවකටම අධි බර පැටවීම සහ වැටීම වැළැක්වීම සඳහා උපරිම සංඛ්යාත්මක තර්ක පාලනය කිරීමට හොඳ අදහසකි.

පහත දැක්වෙන විධාන රේඛාව කොටස් 200 නම් කණ්ඩායම් විසින් ලබාදී ඇති ගොනු නාමයන් වෙත cp විධානය වෙත සම්ප්රේෂණය වන අතර එය පිටපත් බැකප් වෙත පිටපත් කරනු ලබයි.

./-වර්ගය f -name "* .txt" -print | xargs -l200 -i cp -f {} ./backup

සෙවුම් විධානය තුල "./" මූලය තුල සෙවුම් සඳහා වත්මන් බහලුම නිරූපනය කරයි. "-type f" තර්කය ගොනු වලට සෙවුම් සීමා කරනු ලබන අතර, "-name" * .txt "ධජ තවදුරටත්" .txt "දිගුව නොමැති කිසිවක් ෆීල්ඩ්ස් හි ඇති ධජය { } අංකනය මඟින් වාෂ්පයේ සෑම ගොනු නාමයක්ම නියෝජනය වේ.

පහත දැක්වෙන විධානය මඟින් ඩිරෙක්ටරයට / tmp හෝ ඊට පහළින් තිබෙන ගොනු සොයාගත හැකි අතර ඒවා මකාදමනු ලැබේ.

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

පේළියක නාමයන්, තනි හෝ ද්විත්ව උපුටා දැක්වීම් හෝ අවකාශයන් අඩංගු නම්, ඒවායේ වැරදි ලෙස ක්රියා කරනු ඇති බව සලකන්න. පහත දැක්වෙන අනුවාදය ගොනු නාමයන් හෝ තනි නාමයන් හෝ ද්විත්ව උපුටා, අවකාශය හෝ නව පේළියක් අඩංගු ලිපිගොනු හෝ නාමාවලට සකසනු ලැබේ.

/ tmp -name core -type f -print0 | xargs -0 / bin / rm -f

මෙම -i විකල්පය වෙනුවට ඔබ විසින් මෙම උදාහරණයෙහි මෙන් ආදාන පරතරය තුළ ආදාන රේඛාව මඟින් ආදේශ කළ string -I කොඩිය භාවිතා කළ හැකිය:

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

ආදේශන පෙළ "{}" ලෙස අර්ථ දැක්වේ. මෙයින් අදහස් කරන්නේ, විධාන පරාමිතියන් තුළ "{}" ඕනෑම සිදුවීමක් වන අතර, නළය මෙහෙයුම මගින් තර්ක ඉදිරිපත් කරන ලද ආදාන අංගය මඟින් ප්රතිස්ථාපනය වේ. මෙමඟින් ආයාත මූලද්රව්යවල නිශ්චිත ස්ථානවල (නැවත නැවත) ක්රියාත්මක කළ යුතු විධානයන්හිදී ඔබට එමඟින් ඇතුල් කළ හැක.