Conteúdo excluído acidentalmente de / usr / local [duplicado]

0

Eu acidentalmente emiti 'sudo rm -rfd *' no diretório / usr / local. O que eu teria que fazer para, pelo menos, voltar a como seria a partir de uma nova instalação (Linux Mint 15)?

    
por Spearman 06.09.2013 / 14:56

2 respostas

1

Nunca tente recuperar arquivos do sistema

Oh, por favor, nunca recomende a recuperação de arquivos para arquivos do sistema! A recuperação de arquivos pode ser tentada em mais arquivos exclusivos , como um texto escrito por você mesmo.

A recuperação de arquivos do sistema está implorando por problemas.

1ª solução

Para o seu sistema, basta reinstalá-lo. Você não precisa limpar / formatar nada durante a instalação: tudo o que estiver faltando será apenas substituído. Você só terá que atualizar como de costume.

Mas isso não deve ser necessário, pois /usr/local está certamente vazio em seu sistema.

2ª solução

Geralmente, não há quase nada nessa pasta. Se você sabe que instalou algo lá, basta reinstalá-lo.

Finalmente, alguns pacotes podem ter colocado alguns arquivos lá. Basta abrir um terminal e verificar se os seguintes comandos não geram nada:

dpkg --get-selections | cut -f 1 | xargs dpkg -L | grep /usr/local

Explicações

O que isso faz é bem simples:

dpkg --get-selections 

mostrará a lista dos pacotes instalados em seu sistema no formato:

package_name                      installed

Mas só queremos package_name para cada linha:

| cut -f 1 

| informa ao bash (o programa que roda no terminal) que a saída do comando anterior não deve ser exibida, mas "canalizada" dentro do próximo programa (aqui cut ).

cut , como o próprio nome indica, cortará cada linha em palavras e manterá apenas o primeiro campo ( -f 1 ) que será exibido.

Para resumir,

dpkg --get-selections | cut -f 1

deve retornar a lista dos pacotes instalados em seu sistema.

Agora podemos canalizar essa lista para xargs , que age como "para cada elemento da lista ...".

Aqui,

xargs dpkg -L 

será executado:

dpkg -L package1
dpkg -L package2
dpkg -L package3
...

para cada nome de pacote que você der através do pipe.

dpkg -L mypackage lista os arquivos contidos no pacote chamado "mypackage".

E agora, precisamos apenas pegar a lista de arquivos e verificar se algum pacote colocou um arquivo em /usr/local . Fazemos isso com grep , o que filtrará qualquer saída não contendo /usr/local .

Então, se colocarmos em ordem, primeiro nós temos a lista de pacotes instalados, então formamos esta lista para manter apenas os nomes dos pacotes, então listamos as pastas de instalação usadas pelo pacote, então filtramos para manter somente o que está dentro de /usr/local .

Se o comando não retornar nada, você não precisa se preocupar.

Alternativa gráfica da interface do usuário

No meu conhecimento, não há alternativa de GUI.

    
por 06.09.2013 / 15:47
0

Não há necessidade de reinstalar o sistema operacional, pois o sistema operacional não deve armazenar nada em /usr/local ou em /opt (esses dois são mais ou menos os mesmos).

No entanto, qualquer programa que você compilou sozinho ou que tenha sido instalado através de um gerenciador de pacotes ou da árvore de ports pode muito bem acabar em / usr / local /.

Portanto:

  1. Verifique seus backups. O que estava nessas pastas? Desinstale e reinstale esses programas.
  2. Ou, sem backups, faça uma lista de todos os pacotes instalados e desinstale e reinstale todos eles.

(Use apt-get ou dpkg -l para listar os pacotes).

    
por 06.09.2013 / 15:25