फ़ाइलों को अंतिम संपादित तिथि द्वारा सूचीबद्ध करें


104

मेरे पास एक निर्देशिका है: /home/user/

मैं इस निर्देशिका की प्रत्येक फ़ाइल (उप निर्देशिकाओं में शामिल) को कैसे सूचीबद्ध कर सकता हूं और उन्हें अंतिम तिथि तक क्रमबद्ध कर सकता हूं?

जवाबों:


172

आप उपयोग कर सकते हैं:

ls -Rt

जहां पुनरावर्ती का-R अर्थ है (उपनिर्देशिका शामिल करें) और इसका अर्थ है "अंतिम संशोधन तिथि के अनुसार क्रमबद्ध करें"।-t


संशोधित तिथि के अनुसार क्रमबद्ध फ़ाइलों की सूची देखने के लिए, उपयोग करें:

ls -l -Rt

इसे प्राप्त करने के लिए एक उपनाम भी बनाया जा सकता है:

alias lt='ls -lht'
lt

जहां -hअधिक पठनीय आउटपुट दिया जाता है।


16
धन्यवाद, यह एकदम सही है। मैंने वहां एक-एल जोड़ा, इसलिए मैं वास्तव में तारीखों को किसी के लिए भी देख सकता हूं जो बाद में इसे खोजते हैं, यह है- $ ls -lRt
मार्टी

4
यदि आप इसे प्रॉम्प्ट पर कर रहे हैं और हाल ही में संशोधित फ़ाइलों को देखना चाहते हैं, तो विचार करें ls -lrt[RhA]-rसूची के तल पर हाल ही में संपादित किए गए सामान को छोड़कर, क्रम को उलट देता है ...
dmckee --- पूर्व-मध्यस्थ ने बिल्ली का बच्चा

इससे -ilaआपको उन सभी जानकारियों के लिए बहुत कुछ मिलता है जिनकी आपको आवश्यकता होगी। $ ls -ilaRt
फल्केनफाइटर

मैंने इस उत्तर पर विस्तार किया है क्योंकि उपयोग ll -Rtकरना मेरे लिए एकदम सही समाधान था क्योंकि मुझे फाइलों को सबसे हाल ही में संशोधित करके देखने की आवश्यकता थी। यह दूसरों के लिए मददगार हो सकता है।
म्यूस

@MusTheDataGuy llमौजूद नहीं है और एक कमांड नहीं है। यह ज्यादातर बैश शेल में एक उपनाम है, लेकिन अधिकांश / कुछ / में परिभाषित नहीं है? लिनक्स वितरण। कुछ इसे alias ll='ls -l'/etc/bash.bashrc या /etc/.bashrc के रूप में परिभाषित करते हैं । इस प्रकार यह काम नहीं कर सकता है और यह ओपीएस प्रणाली पर मौजूद नहीं हो सकता है। ls -l -Rtकम से कम उपयोग करें , जैसा lsकि एक मानक आदेश है जैसा कि पॉज़िक्स द्वारा परिभाषित किया गया है। या आप निर्दिष्ट करें alias ll='ls -l'; ll -Rt
कामिलुक

73

यदि आप एक मास्टर सूची चाहते हैं, जिसमें सभी फाइलें एक साथ संशोधन तिथि के अनुसार क्रमबद्ध होती हैं , तो वे उस निर्देशिका को दिखाते हैं जिसमें वे नहीं होते हैं, लेकिन निर्देशिका द्वारा समूहीकृत नहीं किया जाता है , आप इसका उपयोग कर सकते हैं:

find . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '

परिणाम बहुत कुछ दिखता है ls -l:

-rw-r - r-- 1 रूट रूट 3892 08/11/2009 11:03:36 /us/share/man/man1/xmllint.1.gz
-rw-r - r-- 1 रूट रूट 22946 08/13/2009 11:59:20/usr/share/man/man1/curl.1.gz
-rw-r - r-- 1 रूट रूट 728 08/17/2009 12:06:33 /us/share/man/man1/thunderbird.1.gz
-rw-r - r-- 1 रूट रूट 873 08/18/2009 10:52:47/usr/share/man/man1/libgnutls-config.1.gz
-rw-r - r-- 1 रूट रूट 2552 08/19/2009 02:00:34/usr/share/man/man3/Purple.3pm.gz
-rw-r - r-- 1 रूट रूट 9546 08/19/2009 02:02:00 /us/share/man/man1/pidgin.1.gz
-rw-r - r-- 1 रूट रूट 2201 08/19/2009 02:02:46/usr/share/man/man3/Pidgin.3pm.gz
-rw-r - r-- 1 रूट रूट 926 08/19/2009 02:03:05 /us/share/man/man1/purple-remote.1.gz
-rw-r - r-- 1 रूट रूट 18052 08/19/2009 04:11:47/usr/share/man/man1/mono.1.gz
-rw-r - r-- 1 रूट रूट 1845 08/19/2009 04:11:47/usr/share/man/man5/mono-config.5.gz

मैक ओएस एक्स

मैक ओएस एक्स का उपयोग करने वाले आप में से, बीएसडी ढूंढने पर विकल्प -प्रिफ़ उपलब्ध नहीं है (आपको यह त्रुटि मिलेगी :)find: -printf: unknown primary or operator । सौभाग्य से आप के माध्यम से जीएनयू खोजने स्थापित कर सकते हैं Homebrew (वहाँ के लिए एक विकल्प होना चाहिए फिंक और macports रूप में अच्छी तरह):

brew install findutils

इसे स्थापित करने के बाद GNU खोज आपके लिए उपलब्ध होना चाहिए gfind। तो, आपको बस इतना करने की आवश्यकता है कि ऊपर दी गई लाइन को बदल दें:

gfind . -type f -printf "%-.22T+ %M %n %-8u %-8g %8s %Tx %.8TX %p\n" | sort | cut -f 2- -d ' '

3
अच्छा है। संपूर्ण निर्देशिका को ls -R के साथ समूहीकृत करना कष्टप्रद है।
एल योबो

1
महान कोड, यह स्क्रिप्ट लगभग लिया। 5 सेकंड सॉर्ट करने और कई अलग-अलग फ़ोल्डरों में 13k तस्वीरों को प्रिंट करने (साइगविन के माध्यम से काफी धीमी गति से कंप्यूटर पर) करने के लिए।
मैग्नस

ओह अब यह कमाल है। लोगों के लिए (मेरे जैसे) findलेखक के रूप में परिचित नहीं हैं , उन तर्कों को -printfप्रारूप निर्देश हैं जो कि उस पृष्ठ में man findपांचवें उदाहरण के लिए खोजे जा सकते हैं printf
ओवेन ब्लैकर

4
जो कोई भी MacOS पर इसका उपयोग करना चाहता है, लेकिन वह findutils को स्थापित करने के लिए परेशान नहीं करना चाहता: find . -type f -print0 | xargs -0 stat -f "%m %Sp %l %-8Su %-8Sg %8z %Sm %N" | sort | cut -f 2- -d' 'आपको केवल अंतर्निहित उपयोगिताओं का उपयोग करके MacOS पर लगभग एक ही आउटपुट
देगा

sort -rछँटाई को उलटने के लिए और शीर्ष पर सबसे हाल ही में संशोधित फ़ाइलें हैं।
मैरीडेड

0

मैक OSX 2019

यदि आपको इस बात की परवाह नहीं है कि यह किस समय बनाया गया था लेकिन आप चाहते हैं कि आपकी सूची क्रमबद्ध हो जाए तो इस कमांड का उपयोग करें

==> ls -t

यदि आप ऑर्डर करना चाहते हैं और तिथि और उपयोगकर्ता जानकारी देखना चाहते हैं तो इस कमांड का उपयोग करें

===> ls -lt


0

के लिए zshउपयोगकर्ताओं, आप भी इस्तेमाल कर सकते हैं ग्लोब क्वालिफायर (भी पर प्रलेखित man zshexpn):

echo *(om)

कहाँ oके लिए खड़ा है ऊपर सॉर्ट क्रम, और mके लिए खड़ा है अंतिम संशोधन समय

लूप या किसी अन्य कमांड के लिए उपयोग किए जाने पर यह उपयोगी हो सकता है:

for file in *(^om); do
  [ -e "$file" ] || continue
  # do something with file orderer from least recently modified to last modified
done

या एक और ग्लोब क्वालीफायर के साथ जंजीर:

last_modified_file=(*(om[1]))
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.