2012-05-13 10 views
19

क्या मैं अब तक की कोशिश की है ...लिनक्स खोजने आदेश, 10 नवीनतम फ़ाइलें खोजने के रिकर्सिवली समयावधि की परवाह किए बिना

कमान:

find . -type f -ctime -3 | tail -n 5 

परिणाम:

./Mobilni Telefoni/01. Box Update/05. DC Unlocker Client/dc-unlocker_client-1.00.0857.exe 
./Mobilni Telefoni/01. Box Update/39. Z3X Box/01. Update/01. Samsung Box/SamsungTool_12.4.exe 
./Mobilni Telefoni/10. Nokia/1. SRPSKI HRVATSKI JEZICI/BB5/3xx_Series/Asha 300/06.97/rm781_06.97_ppm_d.rar 
./GPS Navigacije/01. Garmin/03. Garmin Other/garmin_kgen_15.exe 
./GPS Navigacije/01. Garmin/03. Garmin Other/test.txt 

यह आउटपुट है ठीक है, अगर मैं व्यापक समय अवधि डालता हूं तो अच्छा काम नहीं करता है। (ध्यान दें कि मैं -टाइम और नहीं-टाइम का उपयोग करता हूं क्योंकि कुछ अपलोड की गई फाइलें कुछ साल पहले संशोधित की जाती हैं)

समस्या यह है कि फ़ाइलों को महीने में एक बार या एक बार में अपलोड किया जा सकता है, और मुझे अभी भी 10 नवीनतम फाइलें प्राप्त करने की आवश्यकता है , समय अवधि के बावजूद।

यदि यह नहीं किया जा सकता है, तो tail केवल आउटपुट को सीमित करता है, या किसी भी तरह से बड़ी संख्या में फ़ाइलों पर भारी प्रदर्शन प्रभाव के बिना निर्दिष्ट संख्या प्राप्त करता है।

इतने पर एक ही जवाब से आदेश का उपयोग करके, मैं फ़ाइलों को प्राप्त करने में सक्षम था, लेकिन कुछ फ़ाइलों को अनदेखा कर रहे थे ...

find . -type f -printf '%[email protected] %p\n' | sort -n | tail -10 | cut -f2- -d" " 

परिणाम:

./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/E2330_OXFKE2.rar 
./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/FlashTool_E2_R6.zip 
./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E210/E210_XFGH2.rar 
./Mobilni Telefoni/05. iPhone/07. iFaith/iFaith-v1.4.1_windows-final.zip 
./Mobilni Telefoni/05. iPhone/09. iPhone Browser/SetupiPhoneBrowser.1.93.exe 
./Mobilni Telefoni/05. iPhone/10. iPhone_PC_Suite/iPhone_PC_Suite_Eng_v0.2.1.rar 
./Mobilni Telefoni/05. iPhone/10. iPhone_PC_Suite/iPhone_PC_Suite_Ok.rar 
./test 
./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2152/E2152_XXJH4_OXFJI2.zip.filepart 
./GPS Navigacije/01. Garmin/03. Garmin Other/test.txt 

फ़ाइल garmin_kgen_15.exe क्योंकि यह याद आ रही है 2008 में बनाया गया था, लेकिन यह पिछले 24 घंटों में अपलोड किया गया था।

+0

फ़ाइल में से कौन सा समय आपने क्रम में कुंजी के रूप में उपयोग करना चाहते हैं? ctime/mtime/smth else? आप '% टी @' – osgx

+0

@osgx ctime (?) के बजाय सही '% XX' खोजने के लिए ढूंढने के 'मैन' पृष्ठ से परामर्श कर सकते हैं, फाइलें एफ़टीपी के माध्यम से अपलोड की जाती हैं ... करेंगे। –

+2

क्या आपने '% C @' के साथ प्रयास किया है? - 'ढूंढें। - प्रकार f -ctime -3 -printf "% सी @% पी \ n" | सॉर्ट | पूंछ-एन 5 | sed's/[^] * \ (। * \)/\ 1/'' – hakre

उत्तर

36

मुझे बताया गया था कि यह समाधान है:

find . -type f -printf "%[email protected] %p\n" | sort -rn | head -n 10 

प्रमुख मुद्दा printf %[email protected] प्लेसहोल्डर, जो -ctime से एक है। मैंने इसे man find पढ़कर पाया।

परिणाम:

1336992789.0000000000 ./Mobilni Telefoni/05. iPhone/03. iPhone 4G Firmware/5.1.1/iPhone3,1_5.1.1_9B206_Restore.ipsw.filepart 
1336928538.0000000000 ./GPS Navigacije/01. Garmin/03. Garmin Other/test.txt 
1336922295.0000000000 ./GPS Navigacije/01. Garmin/03. Garmin Other/garmin_kgen_15.exe 
1336868365.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2152/E2152_XXJH4_OXFJI2.zip.filepart 
1336867426.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E210/E210_XFGH2.rar 
1336866301.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/FlashTool_E2_R6.zip 
1336865921.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2330/E2330_OXFKE2.rar 
1336865409.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_XXKC1_CDS.zip 
1336865398.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_XXKC1_BIN.zip 
1336864949.0000000000 ./Mobilni Telefoni/11. Samsung/1. FLASH FILES/1. SRPSKI HRVATSKI JEZICI/E/E2230/E2230_OXFKC1_CSC.zip 
+0

आप भूल गए-नहीं। यह होना चाहिए: ढूंढें। - प्रकार f -printf "% सी @% पी \ n" | sort -rn | head -n 10 – qwertzguy

+0

क्या आप जानते हैं कि डिफ़ॉल्ट सॉर्टिंग मोड किस प्रकार है? '-n' ठीक लगता है हालांकि – hakre

+0

यह वर्णमाला है लेकिन यह लोकेल पर निर्भर करता है: http://unix.stackexchange.com/questions/43465/whats-the-default-order-of-linux-sort – qwertzguy

-3

आसान:

filename=$(ls -t . | head -10) 
+1

यह एक पुनरावर्ती समाधान नहीं है; यह केवल मौजूदा निर्देशिका में फाइलें पायेगा, न कि किसी उपनिर्देशिका। –

संबंधित मुद्दे