Recuperar arquivos depois de mover nomes de diretórios?

1

Durante o curso de alguns testes, eu corri o roteiro

for file in *; do
    mv -v "$file" "$file#_*"
done

ou algo nesse sentido. O plano era remover um prefixo dos nomes dos diretórios, mas eu acidentalmente o executei no meu diretório pessoal, e não no diretório de teste que eu criei ...

Meu entendimento é que todos os arquivos dentro dos diretórios devem ser "seguros" (como em, não excluídos), mas agora não tenho como acessá-los por meio de uma estrutura de diretórios.

Existe uma maneira de recuperar esses arquivos?

Obrigado antecipadamente.

UPDATE Parece que minha memória estava incorreta: o comando no loop for era na verdade echo mv ... . De alguma forma, todos os diretórios e arquivos em ~ foram movidos para o meu diretório Videos, mas parecem estar intactos.

    
por Nick 29.07.2014 / 21:59

1 resposta

3

Não sei ao certo o que você fez lá, mas se o comando da sua pergunta for o que você executou, você deve ser capaz de reverter isso:

for f in *
do echo mv -v "$f" "${f%"#_*"}"
done

Por favor, não remova o echo desse comando até ter certeza de que funciona, mas, só para explicar porque eu acho que vai acontecer, aqui está o que eu fiz:

for f in $(seq 100)
do echo $f > file$f
done

Isso me fez 100 arquivos como file1 - file100 e cada um deles continha seu número, então:

$ cat file100
100

assim. Então eu fiz sua coisa:

for f in *
do mv -v "$f" "$f#_*"
done

E eu tinha um monte de arquivos como file1#_* - file100#_* . Então eu fiz a minha coisa colada no primeiro codeblock aqui, mas sem o eco e eu fiz ...

$ cat file100
100
    
por 29.07.2014 / 22:16