Not a directory

1. Not a directory

Fernando Félix de Moura
fextec

(usa CentOS)

Enviado em 09/03/2018 - 15:07h

Olá. Gostaria de ajuda para o seguinte problema relatado abaixo:

Usei o comando abaixo para mover arquivos de um local para outro:
find /origem/pasta -name '*.tar.gz' -mtime +14 -exec mv {} /destino/pasta \;

Detalhe: no destino não existia a pasta.

Uma vez concluída a movimentação, tentei acessar a pasta, porém é retornada a mensagem "pasta: Not a directory". Os arquivos da origem não estão mais lá e queria ver o que posso fazer para recuperá-los.

Muito obrigado desde já.


  


2. Re: Not a directory

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 09/03/2018 - 19:23h

não sou especialista em shell, aguarde mais respostas, pq acho que ele criou um arquivo pasta e não uma "pasta" mesmo.
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.


3. Re: Not a directory

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 09/03/2018 - 19:38h

fextec escreveu:

Olá. Gostaria de ajuda para o seguinte problema relatado abaixo:

Usei o comando abaixo para mover arquivos de um local para outro:
find /origem/pasta -name '*.tar.gz' -mtime +14 -exec mv {} /destino/pasta \;

Detalhe: no destino não existia a pasta.

Uma vez concluída a movimentação, tentei acessar a pasta, porém é retornada a mensagem "pasta: Not a directory". Os arquivos da origem não estão mais lá e queria ver o que posso fazer para recuperá-los.

Muito obrigado desde já.


O comando 'mv' além de mover também é usado para renomear arquivos. Quando vc colocou '/destino/pasta' todos os arquivos da origem foram renomeados para 'pata' e um foi sobrescrevendo o outro. Lamento, mas vc perdeu seus arquivos!!! Tenha mais cuidado ao usar o comando 'mv', dá próssima vez use o parâmetro -i para pedir confirmação antes de sobrescrever.


4. Re: Not a directory

Alberto Federman Neto.
albfneto

(usa openSUSE)

Enviado em 09/03/2018 - 20:56h

Uma curiosidade, Ryuk, como ele tinha que ter feito?

como aqui, na primeira resposta deste post?

https://unix.stackexchange.com/questions/154818/how-to-integrate-mv-command-after-find-command

[¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.


5. Re: Not a directory

Ryuk Shinigami
Ryuk

(usa Nenhuma)

Enviado em 09/03/2018 - 22:32h

albfneto escreveu:

Uma curiosidade, Ryuk, como ele tinha que ter feito?

como aqui, na primeira resposta deste post?

https://unix.stackexchange.com/questions/154818/how-to-integrate-mv-command-after-find-command

[¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨
Albfneto,
Ribeirão Preto, S.P., Brasil.
Usuário Linux, Linux Counter: #479903.
Distros Favoritas: Sabayon, Gentoo, openSUSE, Mageia e OpenMandriva.


O problema foi que ele não havia criado o diretório (pasta) antes de mover, talvez achando que o comando iria criar automaticamente. Daí o comando mv "interpretou" que ele queria mover para o diretório /destino/ e renomear os arquivos para o nome "pasta". A dica seria deixar a barra final no caminho do diretório "/destino/pasta/" para não ter dúvida que se trata de uma pasta e não um arquivo.

find /origem/pasta -name '*.tar.gz' -mtime +14 -exec mv {} /destino/pasta/ \; 

ou
find /origem/pasta -name '*.tar.gz' -mtime +14 -exec mv -t /destino/pasta/ {} \; 

Se colocar a barra "pasta/" e o diretório não existir vai dar erro. Sem a barra vai renomear o arquivo para o nome "pasta".






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts