web-dev-qa-db-fra.com

Commande Linux pour déplacer un répertoire

Mon ancien et mon nouveau répertoire contiennent les mêmes dossiers et fichiers.

J'essaie:

mv -if old/* new/*

et obtenir une erreur

mv: impossible de déplacer `./xxxxxx 'dans un sous-répertoire de lui-même

Comment puis-je le déplacer?

25
Qooe

Tu devrais utiliser mv -if old/* new/ sans la fin *.

C'est parce qu'il s'est déroulé

mv -if old/foo old/bar old/baz new/foo new/bar new/baz

c'est-à-dire tout déplacer dans new/baz

Ce n'est pas ce que tu voulais.

30
alamar
reef@localhost:/tmp/experiment$ ls a
11  22  33
reef@localhost:/tmp/experiment$ ls b
22  33
reef@localhost:/tmp/experiment$ ls
a  b
reef@localhost:/tmp/experiment$ mv a/* b
reef@localhost:/tmp/experiment$ ls a
reef@localhost:/tmp/experiment$ ls b
11  22  33

Ça marche. Qu'essayez-vous d'accomplir? Pourriez-vous s'il vous plaît écrire un court exemple de ce à quoi les données d'entrée devraient ressembler et à quoi devraient ressembler les données de sortie? La vérité est que je n'ai aucune idée de ce que vous essayez de faire :) Aidez-moi à vous aider.

5
Paweł Polewicz

notez que mv a/* b/ne déplace pas les fichiers. * (le nom du fichier commence par '.') dans a/vers b /

ex:

$ mkdir -p a/d b && touch a/f a/.f a/d/.f
$ mv a/* b/
$ ls -a a/
.  ..  .f
3

Peut-être que vous avez obtenu la réponse, mais la réponse ci-dessus ne fonctionne pas pour moi ... et enfin beaucoup de recherches, j'ai obtenu la réponse. (Le problème est dû à la propriété des fichiers)
et mettez simplement Sudo avant la commande et son fonctionnement .... :) Même chose pour les commandes cp et mv.

Sudo mv -if old/* new/
1
Manish Trivedi

Si vous copiez d'un système de fichiers ext2/3/4 vers un système de fichiers FAT32, et qu'un nom de fichier a un caractère non valide pour les conventions de dénomination FAT32, vous obtenez ce message d'erreur terriblement ennuyeux et incorrect. Comment puis-je savoir? J'ai lutté avec ce bug - oui, c'est un BUG KERNEL - pendant 6 heures avant qu'il ne me vienne à l'esprit. Je pensais que c'était une erreur d'interpréteur Shell, je pensais que c'était une erreur "mv" - j'ai essayé plusieurs shells différents, tout. Essayez cette expérience: sur un système de fichiers ext, "touchez" a: b "" les "mv" vers un système de fichiers FAT32. Essayez-le, vous apprécierez (détesterez) les résultats. Il en va de même pour "<" et ">" (\ 074 et\076).

Merci pour "man mv" - c'est une très grande aide, ne quittez pas votre travail de jour.

1
Henry Killinger