Ls আউটপুটে ফাইলের নামের মধ্যে যাদু বিভাজক কী?


20

ls(কোনও যুক্তি ছাড়াই) আউটপুট লাইনব্রেকের সাথে পৃথক ফাইলের নামগুলিতে প্রদর্শিত হয়।

প্রমান:

  • ls | grep foogrepপ্রতিটি ফাইলের নামকে আলাদা ইনপুট হিসাবে গণ্য করে প্রত্যাশার মতো কাজ করে ।

  • ls > files.txt; vim files.txt -> ভিমে প্রতিটি ফাইল পৃথক লাইনে থাকে

এবং এখনও টার্মিনালে আউটপুট lsএক লাইনে একাধিক ফাইল রাখে, ফাইলের নামগুলি স্পেস দিয়ে আলাদা করে ভালভাবে সাজানো কলাম তৈরি করতে:

$ ls
a.txt  b.txt  c.txt

সুতরাং আমার প্রশ্নটি হল, এলএস কীভাবে এটি করে?

এটি একটি নতুন লাইন 'জাল' করতে কিছু বিশেষ নিয়ন্ত্রণ চর ব্যবহার করছে? অথবা কখন এটির আউটপুট অন্য কমান্ডে পাইপ করা হচ্ছে এবং এর ক্ষেত্রে তার আউটপুটটিকে আলাদাভাবে ফর্ম্যাট করা হবে তা জানে?

উত্তর:


24

অথবা কখন এটির আউটপুট অন্য কমান্ডে পাইপ করা হচ্ছে এবং এর ক্ষেত্রে তার আউটপুটটিকে আলাদাভাবে ফর্ম্যাট করা হবে তা জানে?

হ্যাঁ. সম্পূর্ণ ম্যানুয়াল থেকে ( info lsডকুমেন্টেশন ইনস্টল করা থাকলে এর মাধ্যমে উপলব্ধ ):

যদি স্ট্যান্ডার্ড আউটপুটটি টার্মিনাল হয় তবে আউটপুট কলামগুলিতে থাকে (উল্লম্বভাবে সাজানো হয়) এবং নিয়ন্ত্রণের অক্ষরগুলি প্রশ্ন চিহ্ন হিসাবে আউটপুট হয়; অন্যথায়, আউটপুট প্রতি প্রতি লাইন তালিকাভুক্ত করা হয় এবং নিয়ন্ত্রণ অক্ষরগুলি হয় আউটপুট হিসাবে।

আপনি যদি একটি কলাম আউটপুট পছন্দ করেন, আপনি চালাতে পারেন

ls -1

টার্মিনাল হিসাবে এটি পেতে।


7
বিশেষত, ফাংশনটি lsআউটপুটটি টার্মিনাল কিনা তা নির্ধারণ করতে ব্যবহার করে isatty(3)
ব্লারফ্লায়

কিছুটা সম্পর্কিত, কেউ যদি একটি সাধারণ শেল স্ক্রিপ্টে এটি পরীক্ষা করতে চায় তবে যে কেউ চালাতে পারে tty -sএবং তার ফেরতের স্থিতি পরীক্ষা করতে পারে ।
ড্যানিয়েল অ্যান্ডারসন

10

lsআপনি যখন এর আউটপুটটি পাইপ করেন তখন এটি সনাক্ত করে। আপনি এটি ডকুমেন্টেশনে দেখতে পারেন:

যদি স্ট্যান্ডার্ড আউটপুটটি টার্মিনাল হয় তবে আউটপুট কলামগুলিতে থাকে (উল্লম্বভাবে সাজানো হয়) এবং নিয়ন্ত্রণের অক্ষরগুলি প্রশ্ন চিহ্ন হিসাবে আউটপুট হয়; অন্যথায়, আউটপুট প্রতি প্রতি লাইন তালিকাভুক্ত করা হয় এবং নিয়ন্ত্রণ অক্ষরগুলি হয় আউটপুট হিসাবে।

আপনি যদি আউটপুটটির প্রতিটি ফাইল পাইপ পুনঃনির্দেশ নির্বিশেষে পৃথক লাইনে স্থাপন করতে চান তবে আপনি ব্যবহার করতে পারেন

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