Cara memesan file berdasarkan tanggal dalam daftar penyelesaian tab

9
$ 7z l ~ / Downloads /Tab

Bagaimana cara membuat daftar yang dihasilkan untuk diurutkan berdasarkan tanggal, bukan berdasarkan nama?

Saat ini saya menggunakan skrip khusus untuk membuat daftar N file terbaru di direktori yang diberikan (dan menyalin nama file secara manual ke dalam baris perintah), tetapi ingin membuatnya mulus dan lebih nyaman.

Vi.
sumber
4
Mudah di zsh . Saya tidak tahu apakah itu mungkin di bash.
Gilles 'SO- stop being evil'
Apakah Anda hanya ingin melihat file yang terdaftar berdasarkan tanggal atau Anda ingin menambahkannya entah bagaimana ke arsip sesuai urutan tanggal?
terdon
Ada banyak berbagai file di direktori "Unduhan", dan saya ingin mengakses file yang baru saja diunduh (mungkin membongkar, mungkin pindah ke suatu tempat, dll.).
Vi.

Jawaban:

2

Saya pikir tidak bashbisa melakukan itu, jadi Anda bisa mencobanya zsh. Saya bukan pengguna zsh tapi saya pikir konfigurasi ini harus berfungsi:

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

(di reversesini untuk melihat file-file terbaru di akhir daftar, karena bagian atas mungkin tidak terlihat di layar.)

David Ongaro
sumber
0

Kadang-kadang saya perlu menemukan file yang terakhir diunduh di direktori Unduhan saya tetapi mungkin tidak tahu nama file yang tepat. Inilah cara saya melakukannya.

ls -rt ~/Downloads

ls -tdaftar file berdasarkan waktu bukan nama, dengan yang terbaru ditampilkan terlebih dahulu. Karena direktori Unduhan saya berisi begitu banyak file, saya tidak ingin menggulir ke bagian atas daftar untuk melihat yang terbaru. ls -rtmembalik urutan daftar, menampilkan file terbaru di bagian bawah daftar.

Dari sana Anda dapat melakukan apa yang Anda butuhkan dengan mudah. Sebagai contoh:

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

atau

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

Pertanyaan awal Anda dapat dilakukan seperti ini:

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

Saya menyadari ini tidak mengikuti metode penyelesaian Tab tetapi mungkin cocok untuk kebutuhan Anda.

Timothy Martin
sumber
Tidak menyimpan pengetikan. Sebenarnya saya alredy punya script rldengan ls -lhtc "$@" | head -n $Ndo ini.
Vi.
Pertanyaannya adalah bagaimana cara menyambungkan skrip ini atau yang lain ke <kbd> Tab </kbd> membuat berpikir menjadi mulus.
Vi.
Cuplikan Anda juga cenderung merusak beberapa nama file yang rumit, seperti khas untuk file yang diunduh.
Vi.
0

Saya akan melakukan langkah-langkah berikut untuk itu

  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

Dan skripnya terlihat seperti ini (Mungkin rumit)

find ~/Downloads/ -type f -printf '%TY-%Tm-%Td %TT %p\n' | sort -r | head -N | cut -d' ' -f3 | xargs 7z l
Pappu
sumber
Saya sudah memiliki skrip yang mirip, bernama rl(daftar terbaru). Tapi saya perlu menyebutnya secara eksplisit, lalu salin & tempel. Saya ingin lebih terintegrasi dengan penyelesaian tab.
Vi.
-1

Dalam bash, Anda bisa mendapatkan sesuatu yang dekat menggunakan, misalnya,

7z l ~/Downloads/Alt+n

Di mana bindtelah dipetakan Alt+nke fungsi yang menulis ulang READLINE_LINEvariabel.

Untuk memperkirakan penyelesaian tab, saya melakukan ini dengan argumen-parsing-perl-kludge dan fzfuntuk menyajikan menu.

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

Akan
sumber