Ls বা গাছের আউটপুটটি পাইপিংয়ে কম রঙের ক্ষতি হবে?


12

treeএবং lsফাইলের নামগুলি আলাদাভাবে রঙ করে পৃথক ফাইলের ধরনগুলি পৃথক করতে পারে।

treeএবং lsপ্রায়শই ফাইলগুলির একটি দীর্ঘ তালিকা আউটপুট করে (ডিরেক্টরি সহ), তাই আমি স্টাডআউট আউটপুটটি পাইপ করি less

কিন্তু lessরঙগুলি সংরক্ষণ করে না। আমরা কীভাবে এটি রঙ বা কিছু বিকল্প উপায়ে প্রদর্শন করতে পারি?

কেবল লিঙ্কযুক্ত তালিকাটি দেখেছি, তবে পাইপিং করা less -Rবা less -rকাজ করে না। আমার ওএস হ'ল উবুন্টু 12.04। lessসংস্করণ 444: 09 জুন 2011।


1
@JosephR। অন্য প্রশ্নটি অর্ধ-সম্পর্কিত তবে নকল নয়। এখানে আমরা কথা বলছি ls(নয় tree) যার জন্য আউটপুট কোনও টার্মিনালে না গেলে ( less -Rপ্রয়োজন ছাড়াও ) রঙিন আউটপুটকে বাধ্য করার জন্য কিছু বাস্তবায়নকে বলা দরকার
স্টাফেন চ্যাজেলাস

আপনি চেষ্টা করেছেন tree -C | less -R? -Cবিকল্প কম এর বৃক্ষ এর সমতূল্য --color=always, আমি মনে করি (অন্তত এটা আমার জন্য কাজ করে, উবুন্টু 12.04 তে) খুলুন।
স্টিল্ড্রাইভার

@ স্টিলড্রাইভার ধন্যবাদ এটা কাজ করে। একা treeএবং ছাড়া -Cসর্বদা রঙে আউটপুট থাকে, তবে যখন ব্যবহার করা হয় তখন কেন সেগুলি আলাদা হয় less?
টিম

@ টিম ২ টি কারণ: ১. lessরং না ফেলে ডিফল্টরূপে আপনি যদি -Rবিকল্পটি না দিয়ে থাকেন যা এটি এটিকে ছেড়ে দেওয়ার কথা বলে এবং ২ treeএবং lsএবং অন্যান্য প্রোগ্রামগুলি সাধারণত যখন তাদের আউটপুট অন্য কোনও প্রোগ্রামে চলে যায় তখন রঙিন বন্ধ করে দেয় (যেমন: less) সরাসরি আপনার টার্মিনালে পরিবর্তে, যদি না আপনি রঙিনটি জোর করে -Cবা এর সাথে চাপিয়ে দেন --color=always
jw013

2
আপনি লিঙ্কযুক্ত এই তালিকাটি কি?
অ্যান্থন

উত্তর:


15

আমি ধরে নিচ্ছি আপনি ব্যবহার করছেন ls --color=autoযা ls'স্বয়ংক্রিয়' মোডে রঙ ব্যবহার করতে বলে । 'স্বয়ংক্রিয়' মোডটি lessSTDOUT একটি টার্মিনাল কিনা তা দেখতে বলে এবং যদি তাই হয় তবে রঙটি ব্যবহার করুন, অন্যথায় রঙ ব্যবহার করবেন না। আপনি যখন নল lsমধ্যে less, stdout- এ একটি টার্মিনাল নয়, এটা এর stdin সাথে সংযুক্ত থাকা অবস্থায় less, যা একটি স্বাভাবিক নল হয়।

সমাধান, ব্যবহার ls --colorবা ls --color=always

তবে এখন এটি আরেকটি সম্ভাব্য সমস্যার দিকে নিয়ে যায়। আপনার উপর নির্ভর করে less, এটি রঙটি না দেখায়, তবে পরিবর্তে এসকেপ কোডগুলি দেখায়। সমাধানটি ব্যবহার করা হয় less -R। এটি lessএএনএসআই রঙ পালানোর জন্য এস্কেপ কোডগুলির মধ্য দিয়ে যেতে বলে to আপনি ব্যবহার করতে চান না -rকারণ এটি লম্বা লাইনগুলিতে সমস্যা সৃষ্টি করবে যা চারদিকে মোড়ানো থাকে কারণ কম লাইনের দৈর্ঘ্য সঠিকভাবে গণনা করে না।

তাই সম্পূর্ণ সমাধান:

ls --color | less -R

একইভাবে tree:

tree -C | less -R
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.