टैब पूर्ण सूची में तिथि के अनुसार फाइलें कैसे ऑर्डर करें


9
$ 7z l ~ / डाउनलोड /Tab

परिणामी सूची को दिनांक के आधार पर कैसे बनाया जाए, नाम से नहीं?

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


4
Zsh में आसान । मुझे नहीं पता कि क्या यह बैश में संभव है।
गिल्स एसओ- बुराई को रोकें '

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

"डाउनलोड" निर्देशिका में कई विभिन्न फाइलें हैं, और मैं हाल ही में डाउनलोड की गई फ़ाइल का उपयोग करना चाहता हूं (हो सकता है कि इसे अनपैक करें, शायद कहीं और स्थानांतरित करें, आदि)।
वि।

जवाबों:


2

मुझे नहीं लगता कि bashऐसा करने में सक्षम है, इसलिए आप कोशिश कर सकते हैं zsh। मैं एक zsh उपयोगकर्ता नहीं हूँ, लेकिन मुझे लगता है कि इस विन्यास को काम करना चाहिए:

autoload -U compinit
compinit
zstyle ':completion:*' file-sort modification reverse

( reverseयहां सूची के अंत में नवीनतम फाइलें देखने के लिए, क्योंकि ऊपरी भाग स्क्रीन पर दिखाई नहीं दे सकता है।)


0

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

ls -rt ~/Downloads

ls -tसबसे पहले हाल ही में प्रदर्शित होने के साथ फ़ाइलों को सूचीबद्ध नहीं किया गया है। चूंकि मेरी डाउनलोड निर्देशिका में बहुत सारी फाइलें हैं, इसलिए मैं सबसे हाल ही में देखने के लिए सूची के शीर्ष पर स्क्रॉल नहीं करना चाहता। ls -rtसूची के क्रम को उलटता है, सूची के नीचे सबसे हाल की फ़ाइल प्रदर्शित करता है।

वहां से आप वह कर सकते हैं जिसकी आपको काफी आसानी से जरूरत है। उदाहरण के लिए:

unzip $(ls -rt ~/Downloads | tail -n1)

या

mv $(ls -rt ~/Downloads | tail -n1) *some_other_location*

आपका मूल प्रश्न इस तरह किया जा सकता है:

7z l $(ls -rt ~/Downloads | tail -n1)

मुझे पता है कि यह टैब पूरा करने की विधि का पालन नहीं कर रहा है, लेकिन यह आपकी आवश्यकताओं के लिए उपयुक्त हो सकता है।


टाइपिंग नहीं बचाता। वास्तव में मैं एक ऐसा करने के rlसाथ एक स्क्रिप्ट है ls -lhtc "$@" | head -n $N
वि।

सवाल यह है कि इस या अन्य स्क्रिप्ट को <kbd> Tab </ kbd> में कैसे इंटरफेयर किया जाए।
वि।

आपका स्निपेट कुछ पेचीदा फ़ाइलनामों पर भी टूट जाता है, जैसे कि डाउनलोड की गई फ़ाइलों के लिए विशिष्ट।
वि।

0

मैं इसके लिए निम्न चरण करूंगा

  1. First I will find the files and their timestamps
  2. Sort them reversely
  3. Take top N
  4. Get the filenames
  5. Zip it or do whatever u like

और स्क्रिप्ट इस तरह दिखती है (जटिल हो सकती है)

find ~/Downloads/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r | head -N | cut -d' ' -f3 | xargs 7z l

मेरे पास पहले से ही समान स्क्रिप्ट है, जिसका नाम rl(हाल की सूची) है। लेकिन मुझे इसे स्पष्ट रूप से कॉल करने की आवश्यकता है, फिर कॉपी और पेस्ट करें। मैं चाहता हूं कि इसे टैब समापन के साथ और अधिक एकीकृत किया जाए।
वि।

-1

बाश में, आप कुछ का उपयोग कर करीब से प्राप्त कर सकते हैं, उदाहरण के लिए,

7z l ~/Downloads/Alt+n

जहां चर को फिर से लिखने वाले फ़ंक्शन के लिए bindमैप Alt+nकिया गया READLINE_LINEहै।

टैब को पूरा करने के लिए, मैं एक तर्क-पार्सिंग-पर्ल-क्लज के साथ और fzfएक मेनू प्रस्तुत करने के लिए ऐसा करता हूं ।

https://github.com/WillForan/fuzzy_arg/blob/master/fuzzy_new_complete.bash

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