Il comando mv di Linux ha spostato i dati in una posizione sconosciuta?


11

Ho accidentalmente eseguito questo comando in SSH:

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

Ora tutti i dati nella directory magento sono spariti. Qualcuno sa dove si è trasferito?

Grazie!


Per determinare automagicamente in quale directory i dati sono andati e se si sta utilizzando Bash, fare questo: a=( /var/www/vhosts/website/httpdocs/magento/* ); echo "${a[${#a[@]}-1]}". Se non in Bash, questo dovrebbe funzionare: printf '%s\n' /var/www/vhosts/website/httpdocs/magento/* | tail -1. Altrimenti, è molto probabile nell'ultima directory, alfanumericamente. Fatto.
gniourf_gniourf,

Risposte:


20

Se l'ultima voce alfabetica in questa directory è una directory stessa, sono lì.

Supponiamo di avere i file a, bed ce la directory d. In questo caso,

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

si espande 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

che è un comando per spostare tutto d. Guarda lì se c'è qualcosa.

Se dnon fosse una directory, mvavrei dovuto lamentarmene.


1
+1: guarda sotto i sottodir nella directory / var / www / vhosts / website / httpdocs / magento / *. Suggerimento: il sottodir è ancora nella directory magento, quindi dovrebbe essere facile come quasi tutto il resto dovrebbe essere al di sotto di esso, quindi dovrebbe esserci solo una directory (senza contare quelli che iniziano con un '.'). Inserisci quel sottodir e "mv * ..". Ciò potrebbe spostare le cose che erano giustamente al di sotto di quella directory, tuttavia, quindi dovrai rimetterle. + qualsiasi file che avesse lo stesso nome di un file di magento / * sarà sovrascritto (se il tuo "mv" non è alias di "mv -i")
Olivier Dulac il

2
trucco accurato con mv *: mkdir zzz; mv *che sposterà tutto il contenuto della directory corrente nella directory zzz. Assicurati solo di non avere file che ordinano lessicamente dopo zzz.

2

Per estendere la risposta di glglgl:

L'espansione jolly della riga di comando nei sistemi operativi simili a Unix viene eseguita dalla shell. Nella maggior parte dei casi con Linux lo sarebbe bash. La sua pagina man afferma esplicitamente che l'espansione dei caratteri jolly verrà ordinata alfabeticamente. Lo stesso dovrebbe valere per la maggior parte delle shell compatibili con Bourne.


Probabilmente non solo la maggior parte, ma tutti. Altrimenti c'è una mancanza di compatibilità.
glglgl
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.