Closed pigreco closed 3 years ago
@pigreco hai guardato la guida di fd?
Devi usarlo in questa modalità https://github.com/sharkdp/fd#parallel-command-execution
Fai dei test su una cartella di test con qualche file. E se va, poi applica.
Te lo dico perché mv
è un comando distruttivo.
Ok, visto che mi hai scritto che non è chiaro quanto riportato, aggiungo qualche elemento.
Due cose:
-x
, per eseguire comandi in parallelo per ogni risultato della ricerca;{/}
corrisponde al nome del singolo file, senza percorso. Se ad esempio ai una cartella con dei CSV, e in questa hai la sottocartella out
, per copiare i file di output delle ricerca in out
il comando sarà:
fd "^.+([A-Z]+[0-9]+|[A-Z])-particelle.csv$" -x cp {/} ./out
usando il comando suggerito fd "^.+([A-Z]+[0-9]+|[A-Z])-particelle.csv$"
ho verificato che i file ci sono, ma quando gli dico di copiarli mi segnala:
la sottocartella out
esiste
Perché nel tuo caso hai cartelle e sotto cartelle, quindi gli stai dicendo, dalla cartella in cui sei cp ./file.sv ./out
.
Ma non c'è ./file.sv
nella cartella in cui sei.
Se leggi la guida, c'è anche {}
, il percorso completo. Cambialo in qualcosa come
fd "^.+([A-Z]+[0-9]+|[A-Z])-particelle.csv$" -x cp {} ./out/{/}
@aborruso quello che mi serve è
fd "^.+([A-Z]+[0-9]+|[A-Z])-particelle.csv$" -x cp {} ./out
Funziona!!! :-) Grazie!
@aborruso grazie ricetta pubblicata https://tansignari.opendatasicilia.it/ricette/bash/spostare_molti_file/
In una cartella ho tre sottocartelle e per ognuna ho
n
sottocartelle; per ogni cartelle , a livello più basso, ho molti file con nomi e estensioni diversi (csv, txt, json): tramite l'utility fd ho individuato i file che mi interessano:fd "^.+([A-Z]+[0-9]+|[A-Z])-particelle.csv$"
questi file vorrei spostarli in un'altra cartella e per farlo ho provato a usare il comando
mv
:mv fd "^.+([A-Z]+[0-9]+|[A-Z])-particelle.csv$" miaCartella
ma restituisce un errore:
come potrei risolvere?