Come ordinare i file per data nell'elenco di completamento delle schede


9
$ 7z l ~ / Download /Tab

Come rendere l'elenco risultante da ordinare per data, non per nome?

Attualmente uso uno script speciale per elencare N file più recenti in una determinata directory (e copiare manualmente il nome file nella riga di comando), ma voglio renderlo semplice e più conveniente.


4
Facile in zsh . Non so se è possibile in bash.
Gilles 'SO- smetti di essere malvagio' il

Vuoi vedere solo i file elencati per data o vuoi in qualche modo aggiungerli all'archivio in ordine di data?
Terdon

Esistono molti file nella directory "Download" e desidero accedere al file scaricato di recente (forse scompattarlo, spostarlo da qualche parte, ecc.).
Vi.

Risposte:


2

Non credo bashsia in grado di farlo, quindi potresti provarlo zsh. Non sono un utente zsh però penso che questa configurazione dovrebbe funzionare:

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

( reversequi per vedere i file più recenti alla fine dell'elenco, perché la parte superiore potrebbe non essere visibile sullo schermo.)


0

Occasionalmente ho bisogno di trovare il file scaricato più di recente nella mia directory dei download ma potrei non conoscere il nome esatto del file. Ecco come lo faccio.

ls -rt ~/Downloads

ls -telenca i file per ora e non per nome, con l'ultimo visualizzato per primo. Dal momento che la mia directory dei download contiene così tanti file che non voglio scorrere in cima all'elenco per vedere i più recenti. ls -rtinverte l'ordine dell'elenco, visualizzando il file più recente in fondo all'elenco.

Da lì puoi fare quello che ti serve abbastanza facilmente. Per esempio:

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

o

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

La tua domanda originale potrebbe essere fatta in questo modo:

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

Mi rendo conto che questo non aderisce al metodo di completamento di Tab ma potrebbe essere adatto alle tue esigenze.


Non salva la digitazione. In realtà ho già una sceneggiatura rlcon ls -lhtc "$@" | head -n $Nquesto.
Vi.

La domanda è come intergate questo o altri script in <kbd> Tab </kbd> per pensare senza soluzione di continuità.
Vi.

Il frammento tende anche a rompersi su alcuni nomi di file difficili, come tipico per i file scaricati.
Vi.

0

Farò i seguenti passi per questo

  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

E la sceneggiatura è simile a questa (potrebbe essere complessa)

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

Ho già uno script simile, chiamato rl(elenco recente). Ma devo chiamarlo esplicitamente, quindi copiare e incollare. Voglio che sia più integrato con il completamento della scheda.
Vi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.