Comando Linux mv moveu dados para um local desconhecido?


11

Eu acidentalmente executei este comando no SSH:

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

Agora todos os dados no diretório magento se foram. Alguém sabe para onde se mudou?

Obrigado!


Para determinar automagicamente em que diretório de seus dados foi e se você estiver usando Bash, faça o seguinte: a=( /var/www/vhosts/website/httpdocs/magento/* ); echo "${a[${#a[@]}-1]}". Se não no Bash, isso deve funcionar: printf '%s\n' /var/www/vhosts/website/httpdocs/magento/* | tail -1. Caso contrário, é muito provável que no último diretório, alfanumérico. Feito.
precisa saber é o seguinte

Respostas:


20

Se a última entrada alfabética neste diretório for um diretório em si, eles estarão lá.

Suponha que você tenha os arquivos a, be ceo diretório d. Nesse caso,

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

expande para

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 é um comando para mover tudo para d. Olhe lá se houver alguma coisa.

Se dnão fosse um diretório, mvdeveria ter reclamado disso.


1
+1: veja os subdiretórios no diretório / var / www / vhosts / website / httpdocs / magento / *. Dica: o subdir ainda está no diretório magento, por isso deve ser fácil, pois quase todo o resto deve estar agora embaixo dele; portanto, deve haver apenas um dir (sem contar os que começam com um '.'). Digite esse subdir e "mv * ..". Isso pode mover coisas que estavam anteriormente corretamente sob esse diretório, no entanto, então você terá que colocá-las de volta. + Qualquer arquivo que tinha o mesmo nome como um arquivo de magento / * terá benn substituído (se o seu "mv" não é alias para "mv -i")
Olivier Dulac

2
truque puro com mv *: mkdir zzz; mv *que moverá todo o conteúdo do diretório atual para o diretório zzz. Apenas verifique se você não possui nenhum arquivo que classifique lexagraphically após o zzz.

2

Para estender a resposta de glglgl:

A expansão de curinga da linha de comando nos sistemas operacionais do tipo Unix é realizada pelo shell. Na maioria dos casos, com o Linux seria bash. Sua página de manual declara explicitamente que a expansão do curinga será classificada em ordem alfabética. O mesmo deve ser válido para a maioria dos invólucros compatíveis com Bourne.


Provavelmente não apenas a maioria, mas tudo. Caso contrário, há uma falta de compatibilidade.
glglgl
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.