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.