La commande Linux mv a déplacé les données vers un emplacement inconnu?


11

J'ai accidentellement exécuté cette commande dans SSH:

mv /var/www/vhosts/website/httpdocs/magento/*

Maintenant, toutes les données du répertoire magento ont disparu. Quelqu'un sait-il où il a déménagé?

Merci!


Pour déterminer dans quel répertoire automagiquement vos données sont allés et si vous utilisez Bash, faites ceci: a=( /var/www/vhosts/website/httpdocs/magento/* ); echo "${a[${#a[@]}-1]}". Sinon Bash, cela devrait fonctionner: printf '%s\n' /var/www/vhosts/website/httpdocs/magento/* | tail -1. Sinon, c'est très probable dans le dernier répertoire, dans le sens alphanumérique. Terminé.
gniourf_gniourf

Réponses:


20

Si la dernière entrée alphabétique de ce répertoire est un répertoire lui-même, ils sont là.

Supposons que vous ayez les fichiers a, bet cet le répertoire d. Dans ce cas,

mv /var/www/vhosts/website/httpdocs/magento/*

s'étend à

mv /var/www/vhosts/website/httpdocs/magento/a /var/www/vhosts/website/httpdocs/magento/b /var/www/vhosts/website/httpdocs/magento/c /var/www/vhosts/website/httpdocs/magento/d

qui est une commande pour déplacer tout d. Regardez là-bas s'il y a quelque chose.

Si ce dn'était pas un répertoire, mvj'aurais dû m'en plaindre.


1
+1: regardez sous les sous-répertoires dans le répertoire / var / www / vhosts / website / httpdocs / magento / *. Astuce: le sous-répertoire est toujours dans le répertoire magento, donc cela devrait être facile car presque tout le reste devrait maintenant être en dessous, donc il ne devrait plus rester qu'un répertoire (sans compter ceux commençant par un '.'). Entrez ce sous-répertoire et "mv * ..". Cela pourrait déplacer des éléments qui se trouvaient auparavant à juste titre sous ce répertoire, cependant, vous devrez donc les remettre. + tout fichier ayant le même nom qu'un fichier de magento / * aura benn écrasé (si votre "mv" n'est pas aliasé en "mv -i")
Olivier Dulac

2
astuce avec mv *: mkdir zzz; mv *qui déplacera tout le contenu du répertoire courant dans le répertoire zzz. Assurez-vous simplement de ne pas avoir de fichiers triés lexographiquement après zzz.

2

Pour étendre la réponse de glglgl:

L'expansion des caractères génériques de ligne de commande dans les systèmes d'exploitation de type Unix est effectuée par le shell. Dans la plupart des cas, avec Linux, ce serait le cas bash. Sa page de manuel indique explicitement que l'extension générique sera triée par ordre alphabétique. La même chose devrait être valable pour la plupart des shells compatibles Bourne.


Probablement non seulement la plupart, mais tous. Sinon, il y a un manque de compatibilité.
glglgl
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.