¿El comando mv de Linux movió datos a una ubicación desconocida?


11

Accidentalmente ejecuté este comando en SSH:

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

Ahora todos los datos en el directorio magento se han ido. ¿Alguien sabe a dónde se mudó?

¡Gracias!


Para determinar automagicamente en qué directorio sus datos fueron y si está usando Bash, hacer esto: a=( /var/www/vhosts/website/httpdocs/magento/* ); echo "${a[${#a[@]}-1]}". Si no está en Bash, esto debería funcionar: printf '%s\n' /var/www/vhosts/website/httpdocs/magento/* | tail -1. De lo contrario, es muy probable en el último directorio, alfanuméricamente. Hecho.
gniourf_gniourf

Respuestas:


20

Si la última entrada alfabética en este directorio es un directorio en sí, están allí.

Suponga que tiene los archivos a, by cy el directorio d. En este caso,

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

se expande a

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

que es un comando para mover todo d. Mira allí si hay algo.

Si dno fuera un directorio, mvdebería haberme quejado de eso.


1
+1: mire debajo de subdirecciones en el directorio / var / www / vhosts / website / httpdocs / magento / *. Sugerencia: el subdirectorio todavía está en el directorio magento, por lo que debería ser fácil ya que casi todo lo demás debería estar debajo de él, por lo tanto, solo debería quedar un directorio (sin contar los que comienzan con un '.'). Ingrese ese subdirectorio y "mv * ..". Sin embargo, esto podría mover cosas que anteriormente estaban correctamente debajo de ese directorio, por lo que tendrá que volver a colocarlas. + cualquier archivo que tenga el mismo nombre que un archivo de magento / * se sobrescribirá (si su "mv" no tiene el alias de "mv -i")
Olivier Dulac

2
buen truco con mv *: mkdir zzz; mv *que moverá todos los contenidos del directorio actual al directorio zzz. Solo asegúrese de no tener ningún archivo que se clasifique lexagráficamente después de zzz.

2

Para extender la respuesta de glglgl:

La expansión de comodines de la línea de comandos en sistemas operativos tipo Unix es realizada por el shell. En la mayoría de los casos con Linux lo sería bash. Su página de manual establece explícitamente que la expansión de comodines se ordenará alfabéticamente. Lo mismo debería ser válido para la mayoría de los shells compatibles con Bourne.


Probablemente no solo la mayoría, sino todo. De lo contrario, hay una falta de compatibilidad.
glglgl
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.