mv: ne peut pas stat avec *


Réponses:


7

Je peux penser à 2 raisons possibles pour lesquelles cela peut se produire:

  1. Le répertoire source peut ne pas exister (OU)
  2. Le répertoire source est peut-être vide

Ignorez si ni l'un ni l'autre!


5

Vous devez utiliser $USERpour que l'utilisateur développe votre nom d'utilisateur. /home/usern'est valide que si vous avez un utilisateur nommé user. Cela fonctionnera si temp1et temp2existe dans votre répertoire personnel

mv /home/$USER/temp1/* /home/$USER/temp2

3

Je vais essayer d'aider et de dissiper un peu la confusion:

  • Si vous souhaitez déplacer un dossier et son contenu vers un autre, vous entrez:

    mv ~/Scripts ~/Podcasts

  • Si vous souhaitez déplacer le contenu d'un dossier mais pas le dossier lui-même vers un autre dossier, vous devez entrer, par exemple mv ~/Scripts/* ~/Podcasts,. Vous pouvez entrer echo ~/Scripts/*pour vérifier le contenu du dossier

  • (Si vous avez également besoin de savoir globstarce qui vous permettra de parcourir tous les niveaux de répertoire, consultez cet article et celui-ci . Il peut être activé avec shopt -s globstar, mais cela devra être mis dans .bashrc pour fonctionner en permanence .)

(Le tilde~ dans ~ / Scripts est étendu à /home/mike/ou votre nom d'utilisateur automatiquement par le shell)


0

Si vous utilisez bash et que le répertoire source est vide, vous pouvez modifier le comportement d'expansion glob par défaut du shell avec:

shopt -s nullglob

pour activer le nullglob et faire en sorte que toutes les commandes suivantes mvse comportent correctement lorsque le répertoire source est vide. Sachez que cela peut entraîner le lscomportement inattendu d' autres commandes telles que .

Vous pouvez à nouveau désactiver le nullglob avec:

shopt -u nullglob

Pour plus d'informations, regardez ici et ici .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.