কীভাবে ফাইলগুলি পুনরাবৃত্তভাবে তালিকাভুক্ত করা যায় এবং পরিবর্তনের সময় অনুসারে সেগুলি বাছাই করা যায়?


12

আমি কীভাবে কোনও ডিরেক্টরিকে পুনরাবৃত্তভাবে সমস্ত ফাইল তালিকাভুক্ত করব এবং পরিবর্তনের সময় অনুসারে আউটপুটটি সাজান?

আমি সাধারণত ব্যবহার করি ls -lhtcতবে এটি সব ফাইল পুনরাবৃত্তভাবে খুঁজে পায় না। আমি লিনাক্স এবং ম্যাক ব্যবহার করছি।

ls -l ম্যাক ওএস এক্স দিতে পারেন

-rw-r--r--    1 fsr  user      1928 Mar  1  2011 foo.c
-rwx------    1 fsr  user      3509 Feb 25 14:34 bar.c

যেখানে তারিখের অংশটি সামঞ্জস্যপূর্ণ বা প্রান্তিক নয়, তাই কোনও সমাধান এটিকে বিবেচনায় নিতে হবে।

আংশিক সমাধান

stat -f "%m%t%Sm %N" ./* | sort -rn | head -3 | cut -f2-

কাজ করে, তবে পুনরাবৃত্তির সাথে নয়।


আমি ধরে নিচ্ছি আপনি লিনাক্সে রয়েছেন, তবে আপনার প্রশ্নটি বা পছন্দসইভাবে ট্যাগ হিসাবে আপনার ওএস নির্দিষ্ট করে উল্লেখ করা উচিত।
EBGreen

উত্তর:


2

stat@ জনস্ন 64৪ প্রস্তাবিত হিসাবে এখানে একটি পদ্ধতি ব্যবহার করা হয়েছে

find . -type f -exec stat -f "%m%t%Sm %N" '{}' \; | sort -rn | head -20 | cut -f2-

find "$PWD" -type f -exec stat -f $'%m\t%N' '{}' \; | sort -rn | cut -f2-ওএস এক্স
কেবলমাত্র

আপনি কোন সংস্করণ statব্যবহার করছেন? আপনার উপরের ফর্ম্যাটটি আমার পক্ষে কার্যকর হয়নি। আমি নিম্নলিখিত ব্যবহার করতে ছিল: find . -type f -exec stat --printf "%Y\t%y %N\n" '{}' \; | sort -rn | cut -f2-। এটির সাথে রয়েছেstat (GNU coreutils) 8.23
ব্যবহারকারী 84207

11

ব্যবহারের findএর -printfএবং সাজানোর একটি যুক্তিসঙ্গত তারিখ বিন্যাস করুন:

find -type f -printf '%T+\t%p\n' | sort -n

এটি প্রক্রিয়া কাঁটা কমাতে হবে এবং এইভাবে দ্রুত হওয়া উচিত test

উদাহরণস্বরূপ যদি আপনি ভগ্নাংশ দ্বিতীয় অংশটি পছন্দ করেন না (যা প্রায়শই ফাইল সিস্টেমে প্রয়োগ করা হয় না):

find -type f -printf '%T+\t%p\n' | sed 's/\.[[:digit:]]\{10\}//' | sort -n
find -type f -printf '%T+\t%p\n' | cut --complement -c 20-30 | sort -n

সম্পাদনা: ম্যাকডে স্ট্যান্ডার্ড findনেই -printf। তবে ম্যাকের জন্য জিএনইউ ফাইন্ড ইনস্টল করা কঠিন নয় (ম্যাক / লিনাক্সের সামঞ্জস্যতা এবং আরও সম্পর্কিত ক্যাভ্যাটগুলির জন্য সেই লিঙ্কটিও দেখুন xargs)।


0

find .সমস্ত ফাইল পেতে সক্ষম হওয়া উচিত। এটার মতো কিছু:

find . -exec ls -dl '{}' \; | sort -k 6,7

আপনার প্রয়োজনের জন্য এটি টিউন করা দরকার।


আমি এটিও লিনাক্স বলে ধরে নিলাম, যেমন ইবিগ্রিন বলেছিল, উইন্ডোজ পিএসে এলএস একটি উপনাম, সুতরাং আপনার যদি সাজানো-অবজেক্ট ব্যবহার করা উচিত এবং বাচ্চাদের আইটেমগুলি পুনরাবৃত্তি করে নেওয়া উচিত যদি এটি হয় তবে ধারণাটি একই।
johnshen64

যখন তারিখগুলি ম্যাকের সাথে বছরের অংশটি মিস করে তখন কি এটি সঠিকভাবে কাজ করে?
qazwsx

আপনি ঠিক বলেছেন, সাম্প্রতিক ফাইলগুলির জন্য তারিখ প্রদর্শন জিনিসগুলিকে গোলমাল করবে। সেক্ষেত্রে হ'ল ফরম্যাটেড তারিখ পেতে পরিবর্তে আপনার স্ট্যাট ব্যবহার করা দরকার। আমার ফাইলগুলি সমস্ত পুরানো তাই কমান্ডটি
ঠিকঠাক

@ জনহেন 64৪: lsলিনাক্সে একটি --time-formatবিকল্প রয়েছে যা আপনি সাম্প্রতিক এবং পুরানো উভয় ফাইলের তারিখ একই বিন্যাসে দেখানো হয়েছে তা নিশ্চিত করতে ব্যবহার করতে পারেন।
RedGrittyBrick

আহ ধন্যবাদ, আপনি ঠিক বলেছেন, শুধু এটি ব্যবহার করেন নি। এটি স্ট্যাট ব্যবহারের চেয়ে অনেক সহজ। এটিকে বলা হয় - টাইম-স্টাইল আমার মনে হয়।
johnshen64

0

ইউনিক্স স্ট্যাক এক্সচেঞ্জ সাইটে অনুরূপ প্রশ্নের উত্তরটি আমাকে সহায়তা করেছিল কারণ আমি zsh ব্যবহার করছিলাম:

পুনর্বিবেচনার তারিখ অনুসারে বাছাই করা ফাইলগুলি কীভাবে তালিকাভুক্ত করা যায় (কোনও স্ট্যাট কমান্ড উপলব্ধ নেই!)


এটি সত্যই একটি মন্তব্য এবং মূল প্রশ্নের উত্তর নয় । আপনি সর্বদা আপনার নিজের পোস্টে মন্তব্য করতে পারেন, এবং পর্যাপ্ত খ্যাতি অর্জনের পরে আপনি কোনও পোস্টে মন্তব্য করতে সক্ষম হবেন । দয়া করে পড়ুন মন্তব্য করার জন্য আমার কেন 50 খ্যাতি দরকার? এর পরিবর্তে আমি কী করতে পারি?
DavidPostill
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.