ইউনিক্স / লিনাক্স সংশোধিত তারিখ অনুসারে সন্ধান করে sort


135

আমি কীভাবে এমন একটি সহজ কাজ করতে পারি findযা সাম্প্রতিক পরিবর্তিত দ্বারা ফলাফলগুলি অর্ডার করবে?

এখানে বর্তমানটি findআমি ব্যবহার করছি (আমি পিএইচপি-তে শেল পালানোর কাজটি করছি, সুতরাং এটি ভেরিয়েবলগুলির পক্ষে যুক্তিযুক্ত):

find '$dir' -name '$str'\* -print | head -10

আমি কীভাবে এই আদেশটি সর্বাধিক সংশোধিত দ্বারা অনুসন্ধান করতে পারি? (দ্রষ্টব্য, আমি এটি অনুসন্ধানের পরে 'পরে' বাছাই করতে চাই না, বরং সাম্প্রতিক সময়ে যা পরিবর্তিত হয়েছে তার ভিত্তিতে ফলাফলগুলি সন্ধান করতে চাই।)


github.com/shadkam/recentmost যা ইচ্ছা তা করবে - তবে একটি এটি তৈরি করা দরকার
user3392225

উত্তর:


148

এটা ব্যবহার কর:

find . -printf "%T@ %Tc %p\n" | sort -n

printfথেকে যুক্তি man find:

  • %Tk: দ্বারা নির্দিষ্ট করা ফর্ম্যাটে ফাইলের শেষ পরিবর্তনটির সময় k

  • @: ভগ্নাংশের অংশ সহ, 1 জানুয়ারি, 1970, 00:00 GMT সাল থেকে সেকেন্ড।

  • c: লোকেলের তারিখ এবং সময় (শনি নভেম্বর 04 12:02:33 EST 1989)।

  • %p: ফাইলের নাম।


5
+1 খুব দরকারী, এর প্রথম উত্তরটি আমি পঠনযোগ্য / দরকারী তারিখের আউটপুট সহ পেয়েছি
জেক এন

সর্বাধিক নির্ভরযোগ্য (এবং খুব সহজ) হিসাবে সময়টিকে সংখ্যাগত অনুক্রমিক (তাই সর্বদা যথাযথভাবে বাছাইযোগ্য) হিসাবে ধন্যবাদ দেওয়া হয়!
কুম্ভ শক্তি

1
আমার মধ্যে সাম্প্রতিক ফাইলগুলি সন্ধানের জন্য আমার এই উপন্যাসটি রয়েছে ~/.zshrc: fr () { find ./ -iname "*"$@"*" -printf "%T@ %Td-%Tb-%TY %Tk:%TM %p\n" | sort -n | cut -d " " -f 2- | grep -i "$@" ; }এটি কমান্ড ( fr <pattern>) এ প্রেরণ করা প্রথম যুক্তির প্যাটার্নযুক্ত সমস্ত ফাইলকে পুনরাবৃত্তভাবে সন্ধান করে এবং সর্বশেষতম একটি দ্বারা সর্বশেষে সাজিয়ে তোলে।
joelostblom

এটা অসাধারণ !!! find -L ...
সিমলিংকগুলি

1
আপনি ব্যবহার করতে পারেন ssedISO8601 ব্যবহার @PeterMortensen দেখিয়েছেন সেকেন্ড ভগ্ন অংশ পরিত্রাণ পেতে এবং শৈলী:find . -type f -printf "%TY-%Tm-%TdT%TT %p\n" | sort -r | ssed -R 's/^([^.]+)\.\d+ (.*)$/\1 \2/'
Ludovic Kúty

83

সবচেয়ে সহজ পদ্ধতিতে তার কাছে zsh, ধন্যবাদ ব্যবহার করা উল্লিখিত glob কোয়ালিফায়ার

print -lr -- $dir/**/$str*(om[1,10])

আপনার যদি জিএনইউ খুঁজে পাওয়া যায় তবে এটিকে ফাইল পরিবর্তনের সময় মুদ্রণ করুন এবং এর অনুসারে বাছাই করুন।

find -type f -printf '%T@ %p\0' |
sort -zk 1nr |
sed -z 's/^[^ ]* //' | tr '\0' '\n' | head -n 10

আপনার যদি জিএনইউ খুঁজে পাওয়া যায় তবে অন্যান্য জিএনইউ ইউটিলিটি না পাওয়া যায়, নালাগুলির পরিবর্তে বিভাজক হিসাবে নিউলাইনগুলি ব্যবহার করুন; আপনি নতুন লাইনযুক্ত ফাইলনামগুলির জন্য সমর্থন হারাবেন।

find -type f -printf '%T@ %p\n' |
sort -k 1nr |
sed 's/^[^ ]* //' | head -n 10

আপনার কাছে পার্ল থাকলে (এখানে আমি ধরে নেব ফাইলের নামে কোনও নতুন লাইন নেই):

find . -type f -print |
perl -l -ne '
    $_{$_} = -M;  # store file age (mtime - now)
    END {
        $,="\n";
        @sorted = sort {$_{$a} <=> $_{$b}} keys %_;  # sort by increasing age
        print @sorted[0..9];
    }'

যদি পাইথন থাকে (ফাইলের নামে কোনও নতুন লাইন ধরে নাও):

find . -type f -print |
python -c 'import os, sys; times = {}
for f in sys.stdin.readlines(): f = f[0:-1]; times[f] = os.stat(f).st_mtime
for f in (sorted(times.iterkeys(), key=lambda f:times[f], reverse=True))[:10]: print f'

পিএইচপি তে সম্ভবত এটি করার একটি উপায় আছে তবে আমি এটি জানি না।

আপনি যদি কেবল পসিক্স সরঞ্জাম নিয়ে কাজ করতে চান তবে এটি আরও জটিল; পুনর্বিবেচনার তারিখ অনুসারে বাছাই করা ফাইলগুলি কীভাবে তালিকাভুক্ত করা যায় তা দেখুন (কোনও স্ট্যাট কমান্ড উপলভ্য নয়!) (প্রথম 10 পুনরায় সংস্থান করা সহজ অংশ)।


আমি মনে করি findসংস্করণটি সবচেয়ে পুরানো ফাইলগুলি দেখায় এবং আপনার -rবিকল্পটি যুক্ত করতে হবে sort
কোয়ান্টিন প্রদেট

আমার সেড বলছে এটির কোনও -z বিকল্প নেই।
কেফ শেকটার

@ কেফসচেস্টার তারপরে বিভাজক হিসাবে নতুন লাইনগুলি ব্যবহার করুন তবে আপনি ফাইলের নামে নতুন লাইনের পক্ষে সমর্থন হারাবেন।
গিলস

উপরোক্ত পাইথন 2 এর জন্য। আপনার যদি কেবল পাইথন 3 থাকে তবে কিছু ছোট পরিবর্তন: পাইথন 3-সি 'আমদানি ওএস, সিএস; sys.stdin.readlines (): f = f [0: -1] এ f এর জন্য টাইমস = {}; বার [চ] = ওস.স্ট্যাট (চ)। স্ট_মটাইমের জন্য এফ ইন (সাজানো (টাইমসকিজ (), কী = ল্যাম্বদা চ: বার [চ], বিপরীত = সত্য)) [: 10]: মুদ্রণ (চ); '
নীল ম্যাকগিল

40

আপনার পিএইচপি বা পাইথন লাগবে না, কেবলমাত্র ls :

man ls:
-t     sort by modification time
-r,    reverse order while sorting (--reverse )
-1     list one file per line

find /wherever/your/files/hide -type f -exec ls -1rt "{}" +;

কমান্ড * যদি ব্যর্থতার স্থিতি (যেমন আর্গুমেন্টের তালিকা খুব দীর্ঘ ) দিয়ে প্রস্থান করে , তবে আপনি সন্ধানের মাধ্যমে পুনরাবৃত্তি করতে পারেন। প্যারাফ্রেস করা হয়েছে: একটি নতুন প্রক্রিয়ার জন্য আর্গুমেন্টের সর্বাধিক দৈর্ঘ্য

  • find . -print0|xargs -0 command (গতি অনুকূল করে তোলে, যদি "" এক্সেক্স + "বাস্তবায়ন না করে তবে" -প্রিন্ট 0 "জানে)
  • find . -print|xargs command (যদি তর্কে কোনও সাদা জায়গা না থাকে)

যদি আর্গুমেন্টগুলির প্রধান অংশটি দীর্ঘ, নিরঙ্কুশ বা আপেক্ষিক পাথ নিয়ে গঠিত হয়, তবে আপনার ক্রিয়াগুলি ডিরেক্টরিতে স্থানান্তরিত করার চেষ্টা করুন: cd /directory/with/long/path; command *এবং আরও একটি দ্রুত সমাধান হ'ল কম যুক্তির সাথে মেলে:command [a-e]*; command [f-m]*; ...


1
যদি প্রচুর ফাইল থাকে তবে এটি 'আরগুমেন্টের তালিকা খুব দীর্ঘ' এর সাথে ব্যর্থ হয়।
আকস্মিক

1
এটি সত্য, তবে আমি বিশ্বাস করি যে প্রশ্নটি ছিল "আমি কীভাবে একটি সহজ অনুসন্ধান করব ..."
Рахматуллин Ярослав

2
এলএস ফাইলের নামগুলিকে এমনভাবে উদ্ধৃতি দেয় না যাতে xargs বুঝতে পারে (নং -0 বিকল্প নয়, এবং বিভিন্ন উদ্ধৃতি শৈলী অপর্যাপ্ত)
টুবু

10

আপনি শুধুমাত্র ls প্রয়োজন

আপনি find /wherever/your/files/hide -type f -exec ls -1rt "{}" +;উপরে বর্ণিত হিসাবে করতে পারেন ,

অথবা

ls -1rt `find /wherever/your/file/hides -type f`

2
যদি প্রচুর ফাইল থাকে তবে এটি 'আরগুমেন্টের তালিকা খুব দীর্ঘ' এর সাথে ব্যর্থ হয়। Xargs ব্যবহার করতে পারে?
আকস্মিক

2
তবে যদি একাধিকবার xargsকল lsকরা যায় তবে সাজানোটি ভেঙে যাবে।
অ্যারন ডি মারাকো

এটি তাদের নামে ফাঁকা ফাইলগুলির সাথে ব্যর্থ হয়। কোন পরামর্শ?
ব্যবহারকারী74094

এই উত্তরে কেবল হোঁচট খেয়েছে এবং ঠিক একই রকম পরিস্থিতিতে আমার যা প্রয়োজন ছিল তা ছিল। প্রশ্ন: +;শেষে কি করে? মনে হচ্ছে একই ফলাফল দেওয়া ছাড়া এটি ;ছাড়া কাজ করে না +?
রকেটনাট

এই মাত্র একই হিসাবে অন্য উত্তর ব্যবহার সম্পর্কে, 8 মাস আগে পোস্ট করা হয়েছে অংশ ছাড়া "` এটি -1rt ম ... `", যা নষ্ট হয়ে গেছে
Clément

7

ব্যবহারকারী 195696 এর উত্তর বাড়ানো হচ্ছে :

find . -type f -printf "%T@\t%Tc %6k KiB %p\n" | sort -n | cut -f 2-

প্রতিটি ফাইল জন্য, এই প্রথম আউটপুট সাংখ্যিক টাইমস্ট্যাম্প (দ্বারা বাছাই জন্য, সারণি দ্বারা অনুসরণ \t), তারপর একটি পাঠযোগ্য টাইমস্ট্যাম্প, তারপর FILESIZE (দুর্ভাগ্যবশত findএর -printfmebibytes না করতে পারবেন না, শুধুমাত্র kibibytes), তারপর আপেক্ষিক সঙ্গে ফাইলের নাম পথ।

তারপরে sort -nএটি প্রথম সংখ্যাযুক্ত ক্ষেত্র অনুসারে বাছাই করে।

তারপরে cutসেই প্রথম সংখ্যাটি বাদ দেওয়া যায় যা ব্যবহারকারীর পক্ষে আগ্রহী নয়। (দ্বিতীয় ক্ষেত্রের সম্মুখের দিকে মুদ্রণ করে)) ডিফল্ট ক্ষেত্র বিভাজক \tবা ট্যাবুলেশন।

আউটপুট উদাহরণ:

Thu 06 Feb 2014 04:49:14 PM EST     64 KiB ./057_h2_f7_10/h2_f7_10.class
Fri 07 Feb 2014 02:08:30 AM EST 7962976 KiB ./056_h2_f7_400/h2__rh_4e-4.mph
Fri 07 Feb 2014 02:23:24 AM EST 7962976 KiB ./056_h2_f7_400/h2_f7_400_out_Model.mph
Fri 07 Feb 2014 02:23:24 AM EST      0 KiB ./056_h2_f7_400/h2_f7_400_out.mph.status
Fri 07 Feb 2014 02:23:24 AM EST     64 KiB ./056_h2_f7_400/1579678.out
Fri 07 Feb 2014 03:47:31 AM EST 8132224 KiB ./057_h2_f7_10/h2__rh_1e-5.mph
Fri 07 Feb 2014 04:00:49 AM EST 8132224 KiB ./057_h2_f7_10/h2_f7_10_out_Model.mph
Fri 07 Feb 2014 04:00:49 AM EST      0 KiB ./057_h2_f7_10/h2_f7_10_out.mph.status
Fri 07 Feb 2014 04:00:49 AM EST     64 KiB ./057_h2_f7_10/1579679.out
Fri 07 Feb 2014 09:47:18 AM EST   9280 KiB ./056_h2_f7_400/h2__rh_4e-4.mat
Fri 07 Feb 2014 10:51:23 AM EST   9728 KiB ./018_bidomain/h2_plain__rh_1e-5.mat
Fri 07 Feb 2014 10:58:33 AM EST   9568 KiB ./057_h2_f7_10/h2__rh_1e-5.mat
Fri 07 Feb 2014 05:05:38 PM EST     64 KiB ./058_h2_f7_stationary/h2_f7_stationary.java
Fri 07 Feb 2014 06:06:29 PM EST     32 KiB ./058_h2_f7_stationary/slurm.slurm
Sat 08 Feb 2014 03:42:07 AM EST      0 KiB ./058_h2_f7_stationary/1581061.err
Sat 08 Feb 2014 03:42:14 AM EST     64 KiB ./058_h2_f7_stationary/h2_f7_stationary.class
Sat 08 Feb 2014 03:58:28 AM EST  70016 KiB ./058_h2_f7_stationary/h2s__rh_1e-5.mph
Sat 08 Feb 2014 04:12:40 AM EST  70304 KiB ./058_h2_f7_stationary/h2s__rh_4e-4.mph
Sat 08 Feb 2014 04:12:53 AM EST  70304 KiB ./058_h2_f7_stationary/h2_f7_stationary_out_Model.mph
Sat 08 Feb 2014 04:12:53 AM EST      0 KiB ./058_h2_f7_stationary/h2_f7_stationary_out.mph.status
Sat 08 Feb 2014 04:12:53 AM EST     32 KiB ./058_h2_f7_stationary/1581061.out
Mon 10 Feb 2014 11:40:54 AM EST    224 KiB ./058_h2_f7_stationary/h2s__rh_4e-4.mat
Mon 10 Feb 2014 11:42:32 AM EST    224 KiB ./058_h2_f7_stationary/h2s__rh_1e-5.mat
Mon 10 Feb 2014 11:50:08 AM EST     32 KiB ./plot_grid.m

আমি ইচ্ছাকৃতভাবে ফাইলসাইজ ফিল্ডটি 6 টি অক্ষর তৈরি করেছি, কারণ যদি এটি দীর্ঘ করা হয় তবে ফাইলগুলি কত বড় তা দৃশ্যত পৃথক করা শক্ত হয়ে যায়। এইভাবে, 1e6 কিবি-র চেয়ে বড় ফাইলগুলি বেরিয়ে যায়: 1 চরের অর্থ 1-9 গিগাবাইট, 2 অক্ষর দ্বারা 10-99 গিগাবাইট ইত্যাদি etc.


সম্পাদনা করুন: এখানে আরও একটি সংস্করণ রয়েছে (যেহেতু find . -printf "%Tc"MinGW / MSYS এ ক্র্যাশ হয়েছে):

find . -type f -printf "%T@\t%p\n" | sort -n | cut -f 2- | xargs -I{} ls -Glath --si {}

আউটপুট দেওয়া যেমন:

-rw-r--r-- 1 es 23K Jul 10  2010 ./laptop_0000071.jpg
-rw-r--r-- 1 es 43M Jul 29 19:19 ./work.xcf
-rw-r--r-- 1 es 87K Jul 29 20:11 ./patent_lamps/US Patent 274427 Maxim Lamp Holder.jpg
-rw-r--r-- 1 es 151K Jul 29 20:12 ./patent_lamps/Edison screw-in socket.png
-rw-r--r-- 1 es 50K Jul 29 20:13 ./patent_lamps/1157 Lamp.jpg
-rw-r--r-- 1 es 38K Jul 29 20:14 ./patent_lamps/US06919684-20050719-D00001.png

কোথায়:

  • -I{}ঘটনাকে ঘটনাকে {}আর্গুমেন্ট দ্বারা প্রতিস্থাপনের কারণ দেয় এবং নিউলাইনগুলি এখন আর্গুমেন্ট বিভাজক (উপরের ফাইলনামে ফাঁকা স্থানগুলি নোট করুন)।

  • ls -G গোষ্ঠীর নাম মুদ্রণ দমন (স্থান অপচয়)।

  • ls -h --siমানব-পঠনযোগ্য ফাইল মাপ উত্পাদন করে (এর সাথে আরও সঠিক --si)।

  • ls -t সময় অনুসারে বাছাই করুন, যা এখানে অপ্রাসঙ্গিক, তবে আমি সাধারণত এটি ব্যবহার করি।


1
দ্রষ্টব্য: পরিবর্তে ফাইলের আকার অনুসারে বাছাই করার জন্য, উপরের কমান্ডগুলির মধ্যে কেবল দুটি T@দ্বারা প্রতিস্থাপন করুন s
এভেজেনি সার্জিভ

3

@ ব্যবহারকারী195696 এর উত্তরের ওএস এক্স বৈকল্পিক:

  1. টাইমস্ট্যাম্প সহ:

    find . -type f -exec stat -f "%Sm %N" -t "%Y%y%m%d%H%M" {} \; | sort -r
    
  2. টাইমস্ট্যাম্প ছাড়াই:

    find . -type f -exec stat -f "%Sm %N" -t "%Y%y%m%d%H%M" {} \; | sort -r | awk -F' ' '{ print substr($0, length($1) + 2) }'
    

1

আমি দেখতে পেয়েছি যে এটি ম্যাক ওএস এক্সে কাজটি করে (এবং অন্যান্য ইউনিক্সনেও কাজ করার পক্ষে যথেষ্ট জেনেরিক):

find . -type f -ls | awk '{print $(NF-3), $(NF-2), $(NF-1), $NF}' | sort

2
দুঃখের বিষয়, এটি আমার ক্রোয়েশিয়ান সেটআপে স্থানীয় মাসের নাম প্রিন্ট করে, বাছাই করে ভুল করে।
ইভান ভুইসিকা

ব্যবহারকারী195696 এর উত্তর ক্রোয়েশিয়ান সেটআপ (এবং অন্যদের) জন্য কাজ করে।
পিটার মর্টেনসেন

1

যদি আপনার findনির্বাচনটি খুব সহজ হয় তবে আপনি এটি ছাড়া এটি করতে সক্ষম হতে পারেন এবং কেবল ব্যবহার করুন ls:

ls -1 *.cc # -r -t optional


1

ব্যবহার করুন:

find . -type f -mtime 0 -printf "[%TD %TI:%TM%Tp] %s %p\n" | sort -n | awk '{
    hum[1024**4]="TB"; hum[1024**3]="GB"; hum[1024**2]="MB"; hum[1024]="KB"; hum[0]="B";
    for (x=1024**4; x>=1024; x/=1024){
    if ($3>=x) { printf $1" "$2"\t%7.2f %s\t%s\n",$3/x,hum[x],$4;break }
    }}';

এই আদেশটি পরিবর্তিত তারিখ অনুসারে ফাইলগুলি বাছাই করবে।

এবং এর মতো প্রদর্শন করুন:

[12/05/13 03:10PM] 1.75 MB ./file.text
[12/06/13 11:52PM] 2.90 MB ./file2.mp4
[12/07/13 04:11PM] 4.88 MB ./file3.mp4
[12/07/13 09:17PM] 4.74 MB ./test.apk

আমি এই sript ফাইলের নামের মধ্যে হোয়াইটস্পেস হ্যান্ডেল করতে দেখতে উন্নত superuser.com/a/777007/134532
জানুয়ারী

1

আমার একটি সহজ সমাধান রয়েছে যা ফ্রিবিএসডি (ওএস এক্স) এবং লিনাক্স উভয়ের জন্যই কাজ করে:

find . -type f -exec ls -t {} +

এটি নিখুঁতভাবে কাজ করে - সঠিক উত্তর হওয়া উচিত, বা কমপক্ষে উচ্চতর রেট হওয়া উচিত!
ডিজিটালস্টাস্ট

0

findআউটপুট ক্রম পরিবর্তন করার কোনও বিকল্প আছে বলে আমি মনে করি না । -mtimeএবং -mminআপনাকে ফলাফলগুলিকে এমন ফাইলগুলিতে সীমাবদ্ধ করতে দেবে যা নির্দিষ্ট সময়ের উইন্ডোর মধ্যে সংশোধন করা হয়েছিল, তবে আউটপুটটি সাজানো হবে না - আপনাকে নিজেরাই এটি করতে হবে। জিএনইউতে findএকটি -printfবিকল্প রয়েছে যা অন্যান্য বিষয়গুলির মধ্যেও আপনাকে পাওয়া প্রতিটি ফাইলের পরিবর্তনের সময় মুদ্রণ করতে দেয় (ফর্ম্যাট স্ট্রিং %tবা %Tk); এটি আপনাকে findআউটপুটটি আপনার ইচ্ছামতো সাজানোর ক্ষেত্রে সহায়তা করতে পারে ।


0

ফাইলের নামগুলিতে স্ক্রিপ্ট হ্যান্ডস স্পেস হ্যান্ডলিং করে আমি আকাশের উত্তরটির উন্নতি করেছি:

find . -type f -mtime 0 -printf ";[%TD %TI:%TM%Tp];%s;%p\n" | sort -n | awk -F ";" '{
    hum[1024**4]="TB"; hum[1024**3]="GB"; hum[1024**2]="MB"; hum[1024]="KB"; hum[0]="B";
    for (x=1024**4; x>=1024; x/=1024){
    if ($3>=x) { printf $1" "$2"\t%7.2f %s\t%s\n",$3/x,hum[x],$4;break }
    }}';

0

আপনি যদি সময়ের সাথে সাথে সমস্ত পিএনজি ফাইল অর্ডার করতে চান $PWD:

এই সাধারণ ওয়ান-লাইনারটি পুনরায় চালু করার findএবং পুনরায় চালনের সমস্ত নমনীয়তা দেয় ls

find $PWD -name "*.png" -print0 | xargs -0 ls -laht | less

0

আপনি statএই ফ্যাশনে BSD এবং লিনাক্সে (POSIX- এ নয়) ব্যবহার করতে পারেন :

$ stat -f "%m%t%N" /[the dir]/* | sort -rn | cut -f2-

আপনি যদি নম্বরটি সীমাবদ্ধ করতে চান:

$ stat -f "%m%t%N" /[the dir]/* | sort -rn | head -[the number] | cut -f2-

0

sort | headতারিখ অনুসারে একটি পরিষ্কার এবং শক্তিশালী উপায় রয়েছে :

ls -lসুন্দর মুদ্রণের জন্য ব্যবহার করছি

find . ! -type d -printf "%T@ %p\0" |
    sort -zrn |
    head -zn 10 |
    sed -z 's/^[0-9.]\+ //' |
    xargs -0 ls -lt

ফাংশন হিসাবে :

findByDate() {
    local humansize=''
    [ "$1" = "-h" ] && humansize='h' && shift
    find . ${2:-! -type d} -printf "%T@ %p\0" |
        sort -zrn |
        head -zn ${1:--0} |
        sed -z 's/^[0-9.]\+ //' |
        xargs -0 ls -dlt${humansize}
}

এটি এক বা দুটি যুক্তি দ্বারা বা এমনকি ছাড়াই চালানো যেতে পারে:

Usage: findByDate [-h] [lines] [find options]

নমুনা:

findByDate

তারিখ অনুসারে বাছাই করা সমস্ত অ ডিরেক্টরিকে তালিকাবদ্ধ করবে। নোট:

এমনকি বড় ফাইল সিস্টেমে ট্রিতে, xargs ইতিমধ্যে বাছাই করা তালিকাটি প্রাপ্তির জন্য, ফাইল অর্ডার ঠিক থাকে, এমনকি lsঅনেক বার চালানো দরকার।

findByDate -h 12

তারিখ অনুসারে আরও 12 টি প্রেরিত অ-ডিরেক্টরি তালিকাভুক্ত করবে , যা মানব পাঠযোগ্য আকারে আকারের মুদ্রিত থাকবে

findByDate 42 '-type l'

আরও 42 রিটেন্ট সিমলিংক তালিকাবদ্ধ করবে

findByDate -0 '( -type l -o -type b -o -type s -o -type c )'

তারিখ অনুসারে বাছাই করা সমস্ত সিমলিংক, ব্লক ডিভাইস, সকেট এবং অক্ষর ডিভাইসগুলির তালিকা তৈরি করবে।

বিপরীত ক্রম

প্রতিস্থাপন করা হচ্ছে headদ্বারা tailএবং সুইচ পরিবর্তন sortএবং ls:

findByDate() {
    local humansize=''
    [ "$1" = "-h" ] && humansize='h' && shift
    find . ${2:-! -type d} -printf "%T@ %p\0" |
        sort -zn |
        tail -zn ${1:-+0} |
        sed -z 's/^[0-9.]\+ //' |
        xargs -0 ls -dltr${humansize}
}

একই ফাংশন, একই ব্যবহার:

Usage: findByDate [-h] [lines] [find options]

-1

আপনি যদি প্রতিটি আইটেমের পুরো পথ পেতে চান তবে আপনি এটি লিখে রাখতে পারেন।

 find FIND_ROOT -maxdepth 1 -type f -printf "%T@ %p\n" | sort -nr | head -10 | cut -d ' ' -f 2

কোথায়
-printf "% টি @% পি \ n" বাছাই মানদণ্ড, (DATE) দেবার জন্য
'সাজানোর -nr' তারিখ, দ্বারা বাছাইয়ের জন্য
মাথা -10 শীর্ষ 10 টি ফলাফল তালিকা জন্য,
2 -f '-d কাটা' কাটার প্রতিটি লাইনে শীর্ষস্থানীয় টাইমস্ট্যাম্প।


cut -d ' ' -f 2ফাইলনামে স্পেস থাকলে ভঙ্গ হবে।
এফ.হৌরি

-3

আমার একটি সহজ সমাধান আছে।

cdএকটি ডিরেক্টরি পরে , ব্যবহার করুন

find . -iname "*" -ls


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