Ls কমান্ডের জন্য কম রঙিন আউটপুট নেই


21

আমি যদি চালাই তবে lsআমি রঙিন আউটপুট পাই যা দ্রুত ধরণের ফাইলের এক ঝলক পাওয়ার জন্য আমি বেশ সহজ বলে মনে করি। আমি যখন পতাকা এবং পতাকা lessদিয়ে এটিতে পাইপ দেওয়ার চেষ্টা করি তখন রঙটি সর্বদা হারিয়ে যায়। আমি 5.0.7 সংস্করণ ব্যবহার করছি । কোন ধারনা? ধন্যবাদ।-r-Rzsh

সম্পাদনা: আমি ওএস এক্স এ আছি


আপনি কি নিশ্চিত হয়ে যেতে পারেন যে lsএর সাথে আহ্বান করা হচ্ছে --color? পাইপলাইন স্থগিত করার চেষ্টা করুন ( ^Z) বা psঅন্য টার্মিনাল থেকে ব্যবহার করে । কি আউটপুট which lsউত্পাদন করে?
জ্যাক্স

আমি ঘনিষ্ঠ সারি থেকে এই সাফ যেহেতু ওপি পরিষ্কারভাবে বলেছেন যে তারা ব্যবহার করছেন less -rতাই এটি সঙ্গে কোনো সমস্যা হয় না lessকিন্তুls
terdon

আমি অবাক হয়েছি যে এটি এখনও কোনও সদৃশ নয়, তবে সবচেয়ে কাছের আমি খুঁজে পেলাম স্টোর কমান্ড আউটপুটটি ভেরিয়েবলের এবং এটি সুপার ইউজারে।
স্কট

@ স্কট আমি সঠিক ডুপ্লিকেট আছে কিনা তা নিশ্চিত নই, তবে কিছু প্রশ্ন রয়েছে যার উত্তর খুব মিল ( lsফলাফল স্টাডাউটের উপর নির্ভর করে)। আমার মনে পড়ে এটি হ'ল ইউনিক্স.স্ট্যাকেক্সেঞ্জার.কম / সেকশনস / 157285/… যা নিজেই ইউনিক্সের
সেকশনস

@ জিম্মিজ তবে এই প্রশ্নগুলির উল্লেখ নেই যে ls --color=autoকেবলমাত্র টার্মিনালে লেখার সময় রঙ ব্যবহার করুন (উদাহরণস্বরূপ, যখন স্ট্যান্ডার্ড আউটপুটটি টার্মিনাল হয়), না যখন এটি ফাইল বা পাইপ হয়।
স্কট

উত্তর:


21

এটি ডিজাইনের মাধ্যমে: প্রোগ্রামগুলি রঙিন আউটপুট উত্পাদন করে সাধারণত যখন তাদের আউটপুট টার্মিনালে যায় তখনই তা পাইপ বা নিয়মিত ফাইলে প্রেরণ করা হয় না। কারণটি হ'ল টার্মিনালে প্রেরিত ডেটাগুলি সম্ভবত কোনও মানুষ দ্বারা পড়া হয়, অন্যদিকে কোনও প্রোগ্রামে পাইপযুক্ত বা কোনও ফাইলের লিখিত ডেটা কিছু প্রোগ্রাম দ্বারা বিশ্লেষণের সম্ভাবনা থাকে, সুতরাং এতে রঙ পরিবর্তনকারী পালানোর ক্রমগুলির মতো বহিরাগত সামগ্রী থাকা উচিত নয় ।

lsআপনি বিকল্পটি --color(বা --color=auto) পাস করার পরে GNU টার্মিনালে রঙিন আউটপুট প্রদর্শন করে । স্ট্যান্ডার্ড আউটপুট ফাইলের ধরণের নির্বিশেষে রঙিন আউটপুট জোর করতে, পাস --color=alwaysবা --color=yes(তারা প্রতিশব্দ)। এই কনভেনশনটি অন্যান্য কমান্ডগুলি অনুসরণ করেছে, যেমন জিএনইউ গ্রেপ, ফ্রিবিএসডি গ্রেপ git diffইত্যাদি commands

ls --colors=yes -l | less

ফ্রিবিএসডি সংস্করণ ls(ওএসএক্সেও পাওয়া যায় এবং colorlsওপেনবিএসডি এবং নেটবিএসডি- র বন্দর হিসাবে উপলভ্য ) এর -Gসাহায্যে আউটপুটটি টার্মিনাল হলে রঙ প্রদর্শন করার বিকল্পটি পাস করুন । CLICOLOR_FORCEআউটপুট ফাইলের ধরণের নির্বিশেষে রঙগুলি প্রদর্শন করতে পরিবেশ সেট করুন ।

CLICOLOR_FORCE=1 ls -l | less

20

সম্ভবত সমস্যাটি হ'ল আপনার lsপ্রোগ্রামে বিকল্প সেট রয়েছে --color=autoযার মূলত অর্থ আউটপুটটি শুধুমাত্র টার্মিনালের সাথে সংযুক্ত থাকলে রঙ করা উচিত, অন্যথায় (পাইপ বা কোনও ফাইলে সংযুক্ত আউটপুট) কোনও রঙ নির্গত হয় না।

আপনি যদি রঙ ধারণ করতে চান তবে এই ক্ষেত্রে আপনার --colorবিকল্প সেট করা উচিত always, তাই চেষ্টা করুন

ls --color=always | less -R

যদি এই আচরণটি আপনি সর্বদা প্রত্যাশা করেন তবে কেবলমাত্র উপনামটি তৈরি করুন:

alias ls='ls --color=always'

আমার সেটআপে, বাশ সংস্করণ 4.3, - রঙটি একটি অবৈধ বিকল্প .. "রঙ" এর জন্য গ্রেপিং আমাকে "-জি" বিকল্প সম্পর্কে জানায় তবে কোনও অটো বা সর্বদা বিকল্প সম্পর্কে কিছু বলে না। কোন ধারনা?
নুনোস

5
@ নুনোস lsআসেনি bash, এটি স্ট্যান্ডলোন প্রোগ্রাম। ls --versionএর সংস্করণ পরীক্ষা করতে চালান । খনিটি হল জিএসইউ কোর্টিলস) 8.21
jimmij

@ জিমিজ আমার lsসংস্করণটিতে --versionপতাকা নেই। আমি ওএস এক্স থেকে ডিফল্টটি ব্যবহার করছি, নিশ্চিত না যে এটি সাহায্য করে কিনা।
নুনোস

@ নুনোস দয়া করে সর্বদা আপনার অপারেটিং সিস্টেমের কথা উল্লেখ করুন। লিনাক্স এবং ওএসএক্স-এর মতো নন-জিএনইউ নিক্সের মধ্যে বিশাল পার্থক্য রয়েছে।
টেরডন

0

আমি @ জিম্মিজের জবাবটি মন্তব্য করতে পারি না, কারণ আমার 50 টিরও কম রেপ রয়েছে, তবে আমি বাশে আমার জন্য কী কাজ করেছে তা ব্যাখ্যা করতে চাই।

আপনি যদি চালান

$ man ls | grep color

আপনি manআপনার নির্দিষ্ট শেল পরিবেশের জন্য পৃষ্ঠা পৃষ্ঠার সমস্ত এন্ট্রি দেখতে পাবেন (আমাদের ক্ষেত্রে bash)।

আমার জন্য নিম্নলিখিত সামঞ্জস্যটি কৌশলটি করেছে:

$ alias ls='ls -G'

3
এটা কি জন্য কাজ? -Gপতাকা কিভাবে সঙ্গে কিছুই করার আছে lsতার রঙ্গিন আউটপুট পরিচালনা করে। এটি কেবলমাত্র গ্রুপগুলি সরিয়ে দেয় আউটপুট থেকে ls -l। এটি BSD এলএস এর রঙিন আউটপুটকে প্রভাবিত করে (ওএসএক্সে ব্যবহৃত একটি), এটি আপনার অর্থ কি? কোনও অবস্থাতেই, আমি মনে করি না যে কোনও ফাইলে পুনর্নির্দেশের সময় এটি রঙ দেখায়, এটি কেবল কমান্ড লাইনে রঙ প্রদর্শন করবে।
টেরডন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.