Molto spesso io grep
e find
attraverso le directory (di solito contenenti immagini) e devo "controllare" visivamente il risultato prima di poter operare sul risultato (come cancellare, spostare, ecc.). Per esempio:
find ./pictures -iname "*.jpg" -size +2M -not -path "*/holiday/*"
path1/img_2345.jpg
path1/img_2346.jpg
path1/img_2347.jpg
Vorrei quindi controllare rapidamente cosa c'è dietro i nomi dei file. So di poterli solo display
usare, ma a volte ho bisogno di gestire l'output di diverse centinaia di nomi di file, quindi eseguire un comando ciascuno non è un'opzione.
nautilus
/ nemo
ecc. non sono un'opzione né perché le loro capacità di filtro sono troppo limitate (mi piacerebbe davvero usare find
e grep
)
Quindi ora la mia domanda è: c'è un modo per usare comodamente l'output di strumenti di riga di comando arbitrari come input per un visualizzatore di file / immagini?
Modifica: i commenti mostrano che ho perso alcuni dettagli che sono importanti per me:
Il visualizzatore dovrebbe operare sui file effettivi anziché su copie o collegamenti simbolici (come ad es.
gwenview
Quando si forniscono file sulla riga di comando). Il motivo è che vorrei essere in grado di eliminare / rinominare / spostare i file.Il visualizzatore interessato dovrebbe conservare le informazioni sulla struttura della directory (per diversi motivi)
- operare su file diventa difficile quando ho solo il nome
- a volte il nome del file non è univoco
- a volte il nome della directory contiene informazioni importanti
Ho iniziato a implementare uno strumento da solo ma ho quella sporca sensazione di reinventare la ruota .. almeno posso mostrarti meglio di cosa sto parlando:
Ovviamente nel campo in basso puoi scrivere qualsiasi comando, i nomi dei file sono elencati nel campo a sinistra. Facendo clic su qualsiasi elemento dell'elenco lo visualizzeresti.
Immagino che questa funzionalità potrebbe già esistere come plug-in per un emulatore di terminale o un file manager, ma non ne conosco nessuno ...
Fino a quando non troverò una soluzione migliore, continuerò lo sviluppo (unisciti a me qui ). Ma mi piacerebbe davvero risparmiare tempo e utilizzare una soluzione esistente.
Come va il tuo flusso di lavoro?
gwenview
creerà una cartella contenente tutti i file forniti sulla riga di comando - quindi non c'è più modo di operare su questi file ..
$(...)
. Puoi ancora copiare o modificare i file. Se hai esigenze specifiche dovresti dirlo per risparmiare tempo. Puoi sempre riprodurre quel comportamento con uno script e, ad esempio, fare l'elenco di ln -s
, eseguire il visualizzatore, operare come desideri, uscire dal visualizzatore, fare altre azioni per eliminare il file originale se il collegamento non è più presente ... ci sono molti altri modi per fare tutto con le loro spalle.
gwenview $( find ./pictures -iname "*.jpg" -size +2M -not -path "*/holiday/*" )
? Ovviamente puoi usare qualche altro visualizzatore invece digwenview
. Questa è solo un'idea. Potresti voler citare""
l'output per gestire eventuali spazi o filtrare attraverso awk. In generale non è una buona idea analizzare l'output di ls ... ma per una soluzione rapida può funzionare. Meglio fare uno script e creare una serie di collegamenti simbolici in una directory temporanea che è possibile eliminare uscendo dal visualizzatore.