mv: ne peut pas stat avec *

11

J'ai déjà essayé ça. Je jure que j'ai pu émettre ce genre de commande avant:

mv /home/user/temp1/* /home/user/temp2

Fondamentalement, j'ai obtenu cette commande d'ici: /superuser/273254/move-files-and-folders-recursively-in-linux

Une idée pourquoi ça me dit

mv: cannot stat `/home/user/temp1/*': No such file or directory
user1012451
la source

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!

l0n3sh4rk
la source
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
Rinzwind
la source
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)

Communauté
la source
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 .

Communauté
la source