Spostamento di tutti i file dalle directory Un passo avanti
Domanda
Ho una directory che assomiglia a questa
fool@brat:/mydir/ucsc_mm8> tar -xvf *.tar
1/chr1.fa.masked
1/chr1_random.fa.masked
2/chr2.fa.masked
3/chr3.fa.masked
4/chr4.fa.masked
5/chr5.fa.masked
5/chr5_random.fa.masked
19/chr19.fa.masked
Un/chrUn_random.fa.masked
Quello che voglio fare è spostare tutti i " *. mascherati " file nelle sottodirectory / 1
fino a / Un
.
Esiste un modo compatto per farlo in Linux / Unix?
Soluzione
Il modo tipico di spostare i file con tutti i file corrispondenti a un'espressione particolare è
mv 1/*.masked targetDir
dove targetDir potrebbe essere ..
Se vuoi spostarlo dalle directory 1,2,3, puoi fare qualcosa del genere
mv */*.masked targetDir
Oppure, se vuoi spostarlo in modo specifico dalle directory numerate, puoi semplicemente eseguire qualcosa come
mv [0-9][0-9]/*.masked targetDir
Altri suggerimenti
Molte shell unix supportano anche l'operatore * nella parte della directory del percorso. Quanto segue funziona almeno in bash e zsh:
ls */*.masked
Questo restituirà tutti i file che finiscono in una directory .masked più in profondità.
Quindi per spostarli:
mv */*.masked destination
mv */*.masked .