Se você tiver bash e não se importar com os arquivos correspondentes, como apple.not-a-number
, tente
shopt -s extglob
mv apple.!(0) /new/directory
Eu preciso mover meus arquivos de um diretório para outro. Mas há alguns problemas. Meu padrão de nome de arquivo é como:
apple.0, apple.<n>, n -> {0,1,2,3 ...~ }
então mv apple.*
não funcionará, porque eu preciso manter o apple.0, que é sempre o ativo.
Como faço para movê-los com exceções (neste caso, mantendo apple.0)?
se você estiver usando o bash você deve ser capaz de usar
mv apple.[^0]* /other/directory/
isto moverá quaisquer arquivos dos quais a extensão não comece com 0 ("^" no início de [] significa "não" no bash). Se você tem certeza de que há apenas um caractere como final, você também pode usar
mv apple.[^0] /other/directory/
e se você tiver que garantir apenas os arquivos que terminam em números, você pode usar
shopt -s extglob
mv apple.@([1-9])*([0-9]) /other/directory/
isso não corresponderia à apple.01 ou semelhante embora ...
e um último que deve obter todos os arquivos da Apple terminados em números
shopt -s extglob
mv apple.*([1-9]|[0-9]+([0-9])) /other/directory/
Para ser tão específico quanto você deseja no arquivo para mover e não mover
find /source/directory -maxdepth 1 -name "apple.*" ! -name "apple.0" -exec mv {} /new/directory \;