Usando regex em ls e mv

7

Eu tenho uma estrutura de diretórios como esta

├── UK
│   ├── BuyBand_go_UK.png
│   ├── BuyBand_go_UK.svg
│   ├── BuyBand_K.png
│   ├── BuyBand_K.svg
│   ├── BuyBago_UK.png
│   ├── BuyBago_UK.svg
│   ├── BuyBand_ch_Logo_UK.png
│   └── BuyBand_ch_Logo_UK.svg
└── US
    ├── BuyBand_go_US.png
    ├── BuyBand_go_US.svg
    ├── BuyBand_S.png
    ├── BuyBand_S.svg
    ├── BuyBago_UK.png
    ├── BuyBago_UK.svg
    ├── BuyBand_ch_Logo_US.png
    └── BuyBand_ch_Logo_US.svg

Como posso mover todos os arquivos no diretório UK e US no diretório pai em um comando?

Isso é o que eu tentei:

   mv (US|UK)/* .
    
por Mohsen 23.07.2013 / 23:30

1 resposta

11

Tente isso no diretório pai:

mv {UK,US}/* .

A sintaxe {A,B,...} é semelhante à sintaxe (A|B|...) usada em expressões regulares.

Se você tiver dotfiles (arquivos ocultos) nesses diretórios que não estão aparecendo na sua listagem, execute

mv {UK,US}/{*,.*} .

O * glob expandirá para todos os arquivos e diretórios, exceto aqueles que começam com pontos. O .* glob expandirá para todos os dotfiles.

    
por 23.07.2013 / 23:36