Bajo ksh, bash o zsh:
svn mv !(2010) 2010
En bash, debes ejecutar shopt -s extglobprimero (ponlo en tu ~/.bashrc). En zsh, debe ejecutar setopt -o ksh_globprimero (ponerlo en su ~/.zshrc).
Esto no mueve archivos de puntos (archivos cuyo nombre comienza con .). Si tiene algunos, muévalos por separado. Tenga cuidado de excluir el .svndirectorio si tiene uno. En ksh o zsh:
svn mv !(2010) .!(svn) 2010
En bash, esto es más complicado porque también debes excluir explícitamente .y ...
svn mv !(2010) .!(svn|.|) 2010
Zsh también tiene una sintaxis diferente y más corta, que requiere ejecutarse setopt -o extended_globprimero (nuevamente, ponga esto ~/.zshrc)
svn mv {^,}2010
La primera expansión de llaves entra en juego, lo que resulta en svn mv ^2010 2010. Luego se expande el patrón ^2010(un acceso directo para "archivos que coinciden *pero no 2010").
Si tiene un .svndirectorio, deberá excluirlo del movimiento. Esto está bien por defecto, ya .svnque no coincide *(es un archivo de puntos). Sin embargo, hay complicaciones:
Si ha configurado la glob_dotsopción, deberá excluir .svntambién:
svn mv !(2010|.svn) 2010 # requires setopt ksh_glob
svn mv *~(.svn|2010) 2010 # requires setopt extended_glob
Si tiene archivos de puntos y no los ha configurado glob_dots, deberá moverlos por separado:
svn mv {^,}2010
svn mv .*~.svn 2010
Para hacerlo de una vez:
svn mv *~(.svn|2010)(D) 2010
Otra forma que funcionaría en zsh en este caso (si no tiene subdirectorios) es svn mv *(.D) 2010hacer coincidir solo los archivos normales ( .), incluidos los archivos de puntos ( D).
mv. Sin embargo, conmv,mv * newdirfunciona para mí, aunque con un error.