Mover um número de arquivos de um diretório para outro por erro conspícuo

1

Portanto, graças a este site, encontrei a maneira de mover todos os arquivos da data atual criada nesta data para outro diretório, mas há um erro que não entendo:

Thu Aug 31; 15:05:02; marton;~/Свалени ;  $  find . -newermt 20170829 -not -newermt 20180101 -print0 | xargs -0 mv -t /backup/desktop/books/Python/ML-demos/
mv: inter-device move failed: ‘.’ to ‘/backup/desktop/books/Python/ML-demos/.’; unable to remove target: Invalid argument
Thu Aug 31; 15:06:19; marton;~/Свалени ;  $  

Isso é problemático e como posso solucionar esse erro?

    
por Hartun 31.08.2017 / 14:14

2 respostas

2

Seu erro ocorre porque o comando find localiza . , o diretório de trabalho atual, e passa para mv .

Se você está apenas movendo arquivos (não diretórios), adicione -type f ao comando find :

find . -type f ...(as before)...

Isso filtrará os diretórios, incluindo o diretório . .

Você também pode se livrar de xargs completamente:

find . -type f -newermt 20170829 -not -newermt 20180101 \
    -exec mv -t /backup/desktop/books/Python/ML-demos/ {} +
    
por 31.08.2017 / 15:10
2

Você tenta mover . , que é o diretório atual. Você pode remover isso adicionando -mindepth ao seu comando find . Experimente primeiro sem canalizar para xargs , para ver se obtém o resultado desejado.

    
por 31.08.2017 / 15:02

Tags