লিনাক্স ls শুধুমাত্র ফাইলের নাম তারিখ এবং আকার দেখায়


70

lsকেবলমাত্র ফাইলের নাম এবং তারিখের আকারের তালিকা পেতে আমি কীভাবে লিনাক্সে ব্যবহার করতে পারি । আমার অন্যান্য তথ্য যেমন মালিক বা অনুমতি দেখার দরকার নেই। এটা কি সম্ভব?


1
lsদুর্দান্ত কারণ এটি ডেটটাইম অনুসারে খুব দ্রুত বাছাই করেছে তবে ফর্ম্যাটটি মোকাবেলা করা শক্ত। আমি - টাইম-স্টাইলে যেমন --time-style='+&%Y%m%d+%H%M%S.%N'টোকেনটি '&' রয়েছে তেমন একটি টোকেন ব্যবহার করার পরামর্শ দিচ্ছি , রেফারেন্স হিসাবে আপনি আউটপুটটিকে আরও পার্স sedকরতে পারেন যাতে আপনি টোকেনটির আকার হওয়ার ঠিক আগে ব্যাকট্র্যাক করতে পারেন! যদি কোনও সম্পূর্ণ উত্তর হিসাবে পোস্ট করতে চায় তবে নির্দ্বিধায়, আমি এখনই খুব ঘুমিয়ে আছি :)
কুম্ভ শক্তি

উত্তর:


97

statপরিবর্তে ব্যবহার করবেন না কেন ls?

stat -c "%y %s %n" *

1
এটি দুর্দান্ত, তবে এটিতে "পরিবেশ খুব বড়" / "যুক্তি তালিকা খুব দীর্ঘ" সমস্যা রয়েছে।
মাদুর

4
:-) ধারণার একটি প্রমাণ মাত্র। রিয়েল লাইফ [টিএম] এ এটি হবেfind . -type f -print0 | xargs -0 stat -c "%y %s %n"
f4m8

5
এর আউটপুট ফর্ম্যাট statকরতে, আপনি সি প্রিন্টফ ফাংশনের মতো ফর্ম্যাট স্ট্রিংয়ের প্রস্থের তথ্য যুক্ত করতে পারেন , উদাহরণস্বরূপ "%y %8s %n", এটি নথিবদ্ধ নয়, তবে কাজগুলি মনে হয় (কোর্টিলস 8.17, ফেডোরা 18)
লিউইয়ান 研 r

কারণ lsআমি এক হাজার বিভাজক চর দিয়ে এটি আউটপুট করতে পারি। এটি কিভাবে কাজ করে stat?
আল বুন্ডি

আমি দেখতে পাচ্ছি না কিভাবে এই প্রশ্নের উত্তর দেয় ?! এটি বক্স সলিউশনের বাইরে খুব সুন্দর তবে আপনি সমস্ত সুবিধা হারাবেন ls। রঙ সম্পর্কে কি ??
এমএস বেরেন্ডস

29

আপনি কীভাবে findইউটিলিটি দিয়ে ফাইল তালিকাভুক্ত করবেন সে সম্পর্কে আপনি প্রচুর নিয়ন্ত্রণ পেতে পারেন । lsআপনার পছন্দসই কলামগুলি আপনাকে নির্দিষ্ট করতে দেয় না।

উদাহরণ স্বরূপ:

$ find . -maxdepth 1 -printf '%CY%Cm%Cd.%CH%CM\t%s\t%f\n'
20111007.0601   4096    .
20111007.0601   2   b
20111001.1322   4096    a

printfক্রিয়াটির যুক্তিটি ম্যানপেজে একটি বিশদ। আপনি বিভিন্ন সময়ের তথ্য, কোন আকারটি চান তা (ফাইলের আকার বা ডিস্ক ব্লক ব্যবহৃত) ইত্যাদি চয়ন করতে পারেন etc.


অনুসন্ধানের জন্য উপরের ইনপুট ('% CY% Cm% Cd।% C ...') দীর্ঘ। কমপক্ষে জিএনইউ অনুসন্ধানে রয়েছে %C+(আউটপুট "2016-08-29 + 10: 57: 56.9201257840") এবং %Cc(আউটপুট "মো 29 আগস্ট 2016 10:57:56 সিইএসটি")
গেটলি

আশা করি এটি ম্যাকসে কাজ করেছে।
জেরিনো

সুন্দর, এবং যদি আপনি কেবল পুরো পথ এবং আকার মুদ্রণ করতে চান তবে এটি "সন্ধান / পথ / টু / -প্রিন্টফ '% এইচ /% এফ% s \ n'" কাজ করা উচিত
পিয়ারলাইগি ভার্নেটো

24

আপনি সর্বদা অন্য উপযোগ পছন্দ ব্যবহার করতে পারে awkআউটপুট ফরম্যাট করতে ls1 :

/bin/ls -ls | awk '{print $7,$8,$9}'


হ্যাঁ, সাধারণত, আপনার ls এর আউটপুট বিশ্লেষণ করা উচিত নয় তবে এই ক্ষেত্রে প্রশ্নটি বিশেষত এর জন্য আহ্বান জানিয়েছে ...


এটি যদিও ফাইল আকার মুদ্রণ করে না। এবং এটি কেবলমাত্র ফাইলের নামের প্রথম অংশগুলিতে শ্বেত স্থান সহ প্রিন্ট করে। এবং এটি ব্যর্থ হতে পারে যদি lsএলিয়াস করা হয় (বলুন alias ls='ls -i')। আপনি যদি এলএস আউটপুট পার্সিং করতে চান তবে আপনার অবশ্যই অনেক যত্ন নেওয়া উচিত।
মাদুর

আমার সেখানে ফাইলের আকার ছিল এবং তারপরে এটি সম্পাদনা করা হয়েছিল (অস্পষ্ট মুহুর্ত) - আমি এটি পুনরুদ্ধার করব। এবং আমি সমস্ত ls
ক্যাভেটকে পার্সিংয়ের

আমি দ্বিমত পোষণ করছি, ওপি ফাইলের নাম চায়, ফাইলনামগুলির প্রথম অংশটি যদি ফাইলের নামটি শ্বেত স্পেসে ঘটে থাকে। (ব্যবহারের /bin/lsফলে ওরফে সমস্যা এড়ানো হবে))
মাদুর

যে বোঝা যায় পরোক্ষভাবে কি বলা স্পষ্টভাবে ওপি একটি সমাধান সঙ্গে চায় যে lsযা আমরা উভয় সম্মত হোয়াইটস্পেস প্রয়োজনীয়তা সন্তুষ্ট যাচ্ছে না। /bin/lsপরামর্শ একটি ভাল নেই।
জেসনওয়ারিয়ান

এই সমাধান ভালোবাসি; আকার মুদ্রণ না করার বিষয়ে পূর্ববর্তী মন্তব্যে আপনি এলএস দিয়ে আকার পেতে পারেন এবং -hএটিকে মানব-পঠনযোগ্য করার জন্য ব্যবহার করতে পারেন । বিশেষ করে আমি ব্যবহৃত: ls -lah | awk '{print $5,$6,$7,$8}'যা উৎপাদ: 4.0K Jan 24 18:17। মঞ্জুরি, আসল সমাধানটি awk সম্পর্কে কিছু বলে না, তবে লিনাক্সে আমাদের ধরে নেওয়া উচিত যে কোনও প্রক্রিয়ার আউটপুট সর্বদা অন্য প্রক্রিয়ার ইনপুট হয়ে থাকবে, তাই না? ;)
শে

5

আপনি 'তারিখ' কমান্ডও ব্যবহার করতে পারেন। এটা ব্যবহার করা খুব সহজ:

তারিখ -r [ফাইলের নাম]


ভাল লাগলো, এটা আমার কাছে নতুন ছিল দুর্ভাগ্যক্রমে এটি গ্লোব্বিংয়ের মাধ্যমে বেশ কয়েকটি ফাইলের জন্য কাজ করে না: date -r foo*.txt->date: extra operand "foo2.txt"
গেটলি

4

আপনি যদি এলএস ব্যবহার করতে চান তবে সঠিক আকার সংরক্ষণ করেন তবে আপনি ব্যবহার করতে পারেন:

ls -Ss1pq --block-size=1

1

যেখানে স্থানটি বিভাজক হিসাবে সংজ্ঞায়িত করা হয় এবং f6 এর অর্থ ক্ষেত্র 6 6

ls -lt | cut -d" " -f6-

2
এটি ব্যর্থ হয়েছে কারণ এল এস ইনডেন্টেশনের জন্য স্পেস ব্যবহার করে এবং কখনও কখনও এটি -f6- অন্যান্য সময় এটি -f5- হয়
কুম্ভ শক্তি

1

আপনি দুটি কমান্ড পাইপলাইন করতে পারেন

ls -l|cut -d" " -f5

1
এটি ব্যর্থ হয়েছে কারণ এল এস ইনডেন্টেশনের জন্য স্পেস ব্যবহার করে এবং কখনও কখনও এটি -f6- অন্যান্য সময় এটি -f5- হয়
কুম্ভ শক্তি

-1

ls -s1 কেবলমাত্র এআইএক্স-এ ফাইলের আকার এবং নাম দেয়, লিনাক্স সম্পর্কে নিশ্চিত নয়


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