Eu uso o comando a seguir para limpar um diretório de arquivos e diretórios com mais de 30 dias e movê-los para um diretório de arquivamento que eu posso excluir após algumas semanas se ninguém pedir seus arquivos de volta. O diretório de destino possui subdiretórios por nome de usuário, assim como o diretório de archive.
Este é o comando que eu uso:
find /path/to/directory/username/ -mtime +30 -exec mv "{}" /path/to/archive/username/ \;
Sugeri uma versão modificada deste para responder a uma pergunta sobre perguntar ubuntu, outro usuário editou o código para alterar o fim da linha \;
para +
como ele é mais rápido (e mais correto?). Veja aqui
No entanto, o uso +
dessa maneira funciona se o -exec
comando estiver, ls -lh
mas não no comando real que eu uso. Se eu tentar, +
recebo uma mensagem de erro:
find: missing argument to '-exec'
Não entendo por que está se comportando dessa maneira ou qual seria o comando correto. Por favor, não basta postar uma correção de comando, eu gostaria de entender, em vez de apenas seguir uma sugestão cegamente.
+
vários argumentos para o mesmo comando, mas mv
não consigo lidar com isso!