mv diretório e conteúdo para o novo diretório

2

Tenho certeza de que esta é provavelmente uma pergunta realmente tola que pode ter sido respondida antes (ainda sou novo no Linux - desculpe antecipadamente), mas procurei alto e baixo e não consegui encontrar a resposta .

Eu tenho um diretório:     %código% que contém vários arquivos que compõem o banco de dados /var/lib/mysql/test_db/

Agora criei um novo diretório:      test_db

Estou tentando mover o diretório /var/lib/mysql/data/ e seu conteúdo para o diretório test_db .

Eu tentei vários comandos girando em torno de

sudo mv /var/lib/mysql/test_db/ /var/lib/mysql/data/test_db/

Mas continuo recebendo o erro:

mv: cannot move /var/lib/mysql/test_db/ to /var/lib/msyql/data/test_db/: No such file or directory

Mas se eu correr:      data

Eu obtenho

drwxrwxrwx  2 root  root    32K Mar 27 15:58 test_db
drwxrwxrwx  3 mysql mysql  4.0K Mar 30 10:51 data

que pelo que eu posso dizer significa que ambos são diretórios e, portanto, ambos existem.

Como você pode ver, alterei as permissões para ambos ( ls -lah ), mas isso não ajudou.

O que estou perdendo?

    
por IGGt 30.03.2015 / 12:08

2 respostas

4

Remova o diretório do banco de dados de destino e mova o próprio diretório test_db . (Isso implicitamente moverá seu conteúdo também.)

sudo rmdir /var/lib/mysql/data/test_db
sudo mv /var/lib/mysql/test_db /var/lib/mysql/data

Geralmente, você não precisa fornecer uma barra no final dos nomes dos diretórios.

UPDATE

Se você perceber que ainda está recebendo um erro "não há arquivo ou diretório", pode ser que o diretório de origem, test_db , já tenha sido movido para o diretório test_db de destino (fornecendo /var/lib/mysql/data/test_db/test_db/... ). Se esse for o caso, o rmdir acima também falhará com um erro "nenhum arquivo ou diretório". Corrigi-lo com este comando e, em seguida, execute novamente os dois no topo desta resposta:

sudo mv /var/lib/mysql/data/test_db/test_db /var/lib/mysql/data
    
por 30.03.2015 / 12:12
4

Seu comando:

sudo mv /var/lib/mysql/test_db/ /var/lib/mysql/data/test_db/

é para mover /var/lib/mysql/test_db/ dentro /var/lib/mysql/data/test_db/ e acabar com /var/lib/mysql/data/test_db/test_db/ . Mas como /var/lib/mysql/data/test_db/ não existe, você está recebendo um erro.

Você deve executar:

sudo mv /var/lib/mysql/test_db/ /var/lib/mysql/data/

para ter /var/lib/mysql/test_db/ movido dentro de /var/lib/mysql/data/ .

    
por 30.03.2015 / 12:22

Tags