GNU/Linux >> Tutoriels Linux >  >> Linux

Mv * Dossier (évitant l'erreur "Impossible de déplacer") ?

Cette question a déjà des réponses ici :"mkdir foo ; svn mv * foo"

(3 réponses)
Fermé il y a 8 ans.

Chaque fois que je veux déplacer des milliers de fichiers vers un nouveau dossier, je rencontre toujours le même problème.

> mkdir my_folder
> mv * my_folder
mv: cannot move 'my_folder to a subdirectory of itself 'my_folder'

Bien que je pense que l'erreur ci-dessus est inoffensive (n'est-ce pas ? ) Je me demande s'il existe un moyen de l'éviter.

Au cas où cela serait important, je suis intéressé par une solution en zsh ou une solution qui fonctionne bien sur différents shells.

Réponse acceptée :

En zsh, avec le extended_glob option activée, vous pouvez utiliser ~ pour exclure les motifs des globs, vous pouvez donc utiliser :

setopt extended_glob
mv -- *~my_folder my_folder

Ou utilisez l'opérateur de négation (toujours avec extended_glob ):

mv -- ^my_folder my_folder

Utilisez des accolades pour éviter de taper deux fois le nom du répertoire :

mv -- {^,}my_folder

Dans bash (pour les autres chercheurs de réponses qui l'utilisent), vous pouvez utiliser des globs étendus de style Ksh :

# If it's not already enabled
shopt -s extglob
mv -- !(my_folder) my_folder

Vous pouvez également utiliser cette syntaxe dans zsh si vous activez le ksh_glob option.


Linux
  1. erreur autoconf sur ubuntu 11.04

  2. Comment dupliquer exactement un dossier

  3. Erreur dans phpMyAdmin après la mise à jour vers la v4.8.0 :Le $cfg['TempDir'] (./tmp/) n'est pas accessible

  4. Bash :ls * sans regroupement de dossiers

  5. sudo -i renvoie une erreur

Comment dépanner ERR_TOO_MANY_REDIRECTS

Correction de l'erreur "Impossible d'écrire dans le dossier d'application" dans Vuze BitTorrent Client

Comment protéger par mot de passe un dossier sous Linux

Monter un dossier distant avec sshfs

Comment compresser un dossier sous Linux

S majuscule dans les autorisations d'un dossier ?