(3 respuestas)
Cerrado hace 8 años.
Cada vez que quiero mover miles de archivos a una nueva carpeta, siempre me encuentro con el mismo problema.
> mkdir my_folder
> mv * my_folder
mv: cannot move 'my_folder to a subdirectory of itself 'my_folder'
Si bien creo que el error anterior es inofensivo (¿lo es? ) Me pregunto si hay alguna forma de evitarlo.
En caso de que sea importante, estoy interesado en una solución en zsh o una que funcione bien en varios shells.
Respuesta aceptada:
En zsh, con el extended_glob
opción habilitada, puede usar ~
para excluir patrones de los globos, por lo que podría usar:
setopt extended_glob
mv -- *~my_folder my_folder
O use el operador de negación (todavía con extended_glob
):
mv -- ^my_folder my_folder
Use llaves para evitar escribir el nombre del directorio dos veces:
mv -- {^,}my_folder
En bash (para otros buscadores de respuestas que lo usan), puede usar globos extendidos al estilo Ksh:
# If it's not already enabled
shopt -s extglob
mv -- !(my_folder) my_folder
También puede usar esa sintaxis en zsh
si habilita el ksh_glob
opción.