Usando Bash
Quindi diciamo che ho un sacco di file posizionati casualmente in una directory principale ~/src
, voglio prendere tutti i file corrispondenti a un determinato suffisso e spostarli (o copiarli) in una ~/dist
directory.
Supponiamo a questo scopo che tutti i nomi di file abbiano questa convenzione di denominazione:
<filename_prefix>.<filename_suffix>
Ho scoperto che questo era un modo rapido per ottenere tutti i file con un particolare filename_suffix
e metterli in una cartella dist:
mkdir ~/dst
find source -name "*.xxx" -exec mv -i {} -t ~/dst \;
Ora un ulteriore passo ... come posso usare l'output di find, in questo caso filename
, e usare il filename_prefix
per generare una directory con lo stesso nome ~/dist
e quindi spostare (o copiare) tutti i file con quel prefisso nella directory appropriata?
mkdir ~/dst
find source -name "*.xrt,*.ini,*.moo" -exec mv -i {} -t ~/dst \;
In sostanza, come posso cambiare il comando sopra (o forse usare un altro comando), per creare una struttura come questa
(PRODUZIONE)
~/dist/people/people.xrt
~/dist/games/games.xrt
~/dist/games/games.moo
~/dist/games/games.ini
~/dist/monkeys/monkeys.ini
~/dist/monkeys/monkeys.xrt
da un albero di directory come questo?
(INGRESSO)
~/src/xrt/people.xrt
~/src/xrt/games.xrt
~/src/conf/games.ini
~/src/pack/monkeys.xrt
~/src/e344/games.moo
~/src/e344/monkeys.moo
~/src/en-us/monkeys.ini