
Estou tentando escrever um script que mova arquivos e (sub)diretórios de um diretório para outro. Essa operação de movimentação deve incluir não apenas arquivos e diretórios regulares, mas também quaisquer arquivos de ponto. Até agora eu descobri isso:
mv -f "$SOURCE_DIR"/.?? "$TARGET_DIR"
mv -f "$SOURCE_DIR"/.??* "$TARGET_DIR"
mv -f "$SOURCE_DIR"/* "$TARGET_DIR"
Mas esses comandos falharão se não houver arquivos que correspondam aos padrões.
Eu preciso que esta operação de mudança tenha sucesso de qualquer maneira.
- independentemente do nome do arquivo
- independentemente de não haver arquivos
- independentemente do tipo: arquivo, link, diretório, etc.
Mas preciso que a operação falhe se algo der errado completamente (por exemplo, privilégios insuficientes no diretório de destino, etc.), portanto, simplesmente ignorar quaisquer erros não é uma boa opção.
Como posso resolver esse problema? Acho que há uma solução muito simples para aquilo que esqueci.
Obrigado pela ajuda!
Responder1
Você provavelmente está tornando isso mais difícil do que o necessário.
mv $srcdir $destdir