Sekme tamamlama listesinde dosyaları tarihe göre sıralama


9
$ 7z l ~ / Yüklemeler /Tab

Elde edilen listeyi ada göre değil tarihe göre sıralamak nasıl yapılır?

Şu anda belirli bir dizindeki en son N dosyayı listelemek için özel komut dosyası kullanıyorum (ve dosya adını komut satırına elle kopyalayın), ancak sorunsuz ve daha rahat hale getirmek istiyorum.


4
Zsh kolay . Bash'ta bunun mümkün olup olmadığını bilmiyorum.
Gilles 'SO- kötü olmayı kes'

Yalnızca tarihe göre listelenen dosyaları görmek mi istiyorsunuz yoksa dosyaları bir şekilde tarihe göre arşive eklemek ister misiniz?
terdon

"İndirilenler" dizininde birçok farklı dosya var ve son indirilen dosyaya erişmek istiyorum (belki paketten çıkarın, belki bir yere taşıyın, vb.).
Vi.

Yanıtlar:


2

Bunu yapabileceğini sanmıyorum bash, bu yüzden deneyebilirsin zsh. Ben bir zsh kullanıcı değilim ama bu yapılandırma çalışması gerektiğini düşünüyorum:

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

( reverselistenin sonundaki en yeni dosyaları görmek için burada, çünkü üst kısım ekranda görünmeyebilir.)


0

Bazen İndirilenler dizinimde en son indirilen dosyayı bulmam gerekiyor, ancak tam dosya adını bilmiyor olabilirim. İşte böyle yapıyorum.

ls -rt ~/Downloads

ls -tdosyaları ad yerine zamana göre listeler, en sonuncusu önce görüntülenir. İndirilenler dizinim çok fazla dosya içerdiğinden, en yeni dosyaları görmek için listenin en üstüne kaydırmak istemiyorum. ls -rtlistenin sırasını tersine çevirir ve en son dosyayı listenin en altında görüntüler.

Oradan ihtiyacınız olanı kolayca yapabilirsiniz. Örneğin:

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

veya

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

Orijinal sorunuz şu şekilde yapılabilir:

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

Bunun Tab tamamlama yöntemine uymadığını, ancak ihtiyaçlarınız için uygun olabileceğini anlıyorum.


Yazmayı kurtarmaz. Aslında bir script var alredy rlile ls -lhtc "$@" | head -n $Nbuna do.
Vi.

Soru, bu veya başka bir betiğin <kbd> Sekmesine </kbd> nasıl bağlanacağını düşünmektir.
Vi.

Snippet'iniz ayrıca indirilen dosyalar için tipik olan bazı zor dosya adlarını kırma eğilimindedir.
Vi.

0

Bunun için aşağıdaki adımları yapacağım

  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

Ve senaryo şöyle görünüyor (Karmaşık olabilir)

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

Zaten benzer bir komut dosyası var rl(son liste). Ama açıkça çağırmam ve kopyalayıp yapıştırmam gerekiyor. Sekme tamamlama ile daha entegre olmasını istiyorum.
Vi.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.