Usando o Bash
Então, digamos que eu tenha um monte de arquivos colocados aleatoriamente em um diretório pai ~/src
, eu quero pegar todos os arquivos correspondentes a um determinado sufixo e mova (ou copie) para um diretório ~/dist
.
Vamos supor que todos os nomes de arquivos tenham esta convenção de nomenclatura:
<filename_prefix>.<filename_suffix>
Descobri que essa era uma maneira rápida de obter todos os arquivos com um determinado filename_suffix
e colocá-los em uma pasta dist:
mkdir ~/dst
find source -name "*.xxx" -exec mv -i {} -t ~/dst \;
Agora, um passo adiante ... como posso usar a saída de find, neste caso filename
, e usar o filename_prefix
para gerar um diretório com o mesmo nome em ~/dist
e depois mover (ou copiar todos os arquivos com esse prefixo no diretório apropriado?
mkdir ~/dst
find source -name "*.xrt,*.ini,*.moo" -exec mv -i {} -t ~/dst \;
Essencialmente, como eu mudo o comando acima (ou talvez use outro comando), para criar uma estrutura como essa
(OUTPUT)
~/dist/people/people.xrt
~/dist/games/games.xrt
~/dist/games/games.moo
~/dist/games/games.ini
~/dist/monkeys/monkeys.ini
~/dist/monkeys/monkeys.xrt
de uma árvore de diretórios como essa?
(INPUT)
~/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