সমস্ত পরিবর্তিত ফাইল তালিকা (পুনরাবৃত্ত)


21

সুতরাং, আমি lsসমস্ত ফাইল প্রদর্শন করতে চাই ( উদাহরণস্বরূপ) সমস্ত ফাইল, যা গত সাত দিনে পরিবর্তিত হয়েছিল। আমি যদি আমার ডক্রোট-ফোল্ডারে থাকি তবে এটি "আরও গভীর" দেখতে সক্ষম হওয়া উচিত।

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

File        Last changed
docroot
|- myfile1  30.11.2015
|- myfile2  10.11.2015
|- MySub
   |-sub1   30.11.2015
   |-sub2   10.11.2015

সুতরাং, ls(বা যা কিছু ফিট) তার আউটপুট myfile1এবং (যদি সম্ভব হয়) উচিত MySub/sub1

এটি কি এক আদেশের দ্বারা কার্যকর?

উত্তর:


39

অবশ্যই. আপনি যে ডিরেক্টরিটি করছেন তা থেকে:

find . -type f -mtime -7 -exec ls -l {} \; 

এটিতে একটি পুনর্নির্দেশ যুক্ত করুন (এটিকে > results.txtসেগুলি ফাইলে সংরক্ষণ করার জন্য)।

  • type f ডিরেক্টরি না কেবল ফাইল করে
  • mtime -7 7 দিন আগে এখন অবধি কি (+7 '7 দিনের চেয়ে পুরানো' হবে)
  • এবং তারপরে এটি lsএকটি দীর্ঘ তালিকা প্রদর্শন করতে ফিড করে

আপনি এই অংশটিও খেলতে পারেন ls -l:

find . -type f -mtime -7 -exec ls -Rl --time-style=long-iso {} \; 
find . -type f -mtime -7 -exec ls -R  --time-style=long-iso {} \; 

দীর্ঘ তালিকা (1) বা সংক্ষিপ্ত তালিকা (2) এর মধ্যে ডিরেক্টরি সহ ডিরেক্টরি সহ একটি গাছ দেখায় method


4
findহয়েছে lsবিকল্প যাতে আপনি শুধু করতে পারেfind . -type f -mtime -7 -ls
heemayl

অবশ্যই তবে এটি কিছুটা জেনেরিক করে তোলে (আমার ফাইলগুলি মুছে ফেলার জন্য আমি এই পদ্ধতিটি ব্যবহার করি - এবং এটি করার জন্য সেই আদেশটি পরিবর্তন করতে পারি :))
রিনজউইন্ড

3
এছাড়াও এটি ব্যবহার করা আরও উপযুক্ত find ... -exec ls -l {} +যা কোনটি ls -lআরও কার্যকরভাবে সম্পাদন করে - একাধিক পরামিতি সহ কম সময়। এটি findপসিক্স দ্বারা নির্দিষ্ট একটি স্ট্যান্ডার্ড বিকল্প ।
পাবউক

5

সাথে zsh:

ls -l **/*(.m-7)
  • **/* বর্তমান ডিরেক্টরি থেকে পুনরাবৃত্তভাবে ফাইলগুলি অনুসন্ধান করা হবে

  • (.m-7)গ্লোব কোয়ালিফায়ার যেখানে .নিয়মিত ফাইল m-7নির্দেশ করে, সর্বশেষ 7 দিনের মধ্যে সংশোধিত ফাইলগুলিকে নির্দেশ করে


2

নিম্নলিখিত কমান্ডটি ম্যাক ওএসএক্স-এ একটি স্বপ্ন কাজ করে - সম্ভবত উবুন্টুতেও…

find . -type f -mtime -7 -exec stat -lt "%Y-%m-%d %H:%M:%S" {} \; | cut -d\  -f6- | sort -r

এটি বর্তমান ডিরেক্টরি ট্রিতে ফাইলগুলি সন্ধান করে যা গত days দিনে পরিবর্তিত হয়েছে, পরিবর্তনের তারিখ + সময় এবং পথকে আউটপুট দেয়, প্রথমে সর্বাগ্রে সাজানো।

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

2018-02-21 22:06:30 ./fmxmlsnippet.xml
2018-02-19 12:56:01 ./diff.html
2018-02-19 12:44:37 ./temp/iDDR/XMSC_fmxmlsnippet.xml
2018-02-18 22:04:05 ./temp/iDDR/XMFD_fmxmlsnippet.xml
2018-02-15 10:18:27 ./xml/iDDR/XML2_fmxmlsnippet.xml
2018-02-15 10:13:29 ./xsl/fmxmlsnippet/XML2_fmCM_AnalyseLayout.xsl
2018-02-15 10:11:36 ./xsl/.DS_Store
2018-02-15 10:10:51 ./xsl/_inc/inc.XML2_fmCM_ReportReferencesToExternalFiles.xsl
2018-02-15 10:10:09 ./xsl/_inc/.DS_Store
2018-02-15 10:07:35 ./xsl/fmxmlsnippet/XML2_fmCM_AnalyseLayout-NoAnchors.xsl
2018-02-15 10:07:35 ./xsl/_inc/inc.XML2_fmCM_AnalyseLayout.xsl

আমি উবুন্টু ব্যবহারকারীদের যে কোনও প্রতিক্রিয়ার জন্য কৃতজ্ঞ থাকব।


একমাত্র সমাধান যা ম্যাকের জন্য আমার পক্ষে ভালভাবে কাজ করেছে। ধন্যবাদ!
আর্টনিকপ্রো

আপনার স্বাগত @artnikpro!
মিঃ ওয়াটসন

1

ঠিক কী জন্য জিজ্ঞাসা করা হয়েছিল তা নয় ... তবে মনে রাখা আরও সহজ ...

ls -alRt docroot

অথবা

ls -alRt /path/to/top/level/directory

0

7 দিন যা 60 সেকেন্ড * 60 মিনিট * 24 ঘন্টা * 7 দিনের = 604800 সেকেন্ড

সেকেন্ডে বর্তমান তারিখটি সন্ধান করুন (ইউনিক্স যুগের সময়):

$ date +%s
1448876323

সেকেন্ডে 7 দিন বিয়োগ করুন:

expr $(date +%s) - 604800
1448271548

এখন stat"ফাইলের নাম + সেকেন্ডে সময়" বিন্যাসে সমস্ত ফাইলের জন্য কমান্ড এবং মুদ্রণের পরিসংখ্যান নিন এবং awkসেই ফাইলগুলি কাটাতে ব্যবহার করুন যার পরিবর্তনের সময়টি আমরা যে তারিখটি গণনা করেছি তার চেয়ে বেশি

$ stat --printf="%n %Y\n" $HOME/* | awk '$2 > 1448271265 {print $0}'
/home/xieerqi/1448428697574.png 1448429613
/home/xieerqi/1448763343273.png 1448763478
/home/xieerqi/1510DRIVE 1448352453
/home/xieerqi/addRemoveDistribution 1448666843
/home/xieerqi/add-update.awk 1448716356
/home/xieerqi/add-update.sh 1448625092

বিশেষত আগ্রহের বিষয়টি সর্বশেষ 3 টি ফাইল, কারণ আমি জানি যে আমি 7 দিন আগে তাদের কম কাজ করেছি them সুতরাং আমি জানি এটি কাজ করে


2
নোট করুন যে পরিবর্তে awk '$2 > 1448271265 {print $0}'আপনি সরাসরি বলতে পারেন awk '$2 > 1448271265'। সত্যিকারের শর্তে, অর্ক বর্তমান লাইনের ডিফল্ট ক্রিয়া হিসাবে মুদ্রণ করে।
ফেডোরকুই
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.