Você estava chegando perto:
find / -size +100M -atime +30 \
-exec mv {} /big-not-used/$(basename {})$(date +%Y-%m-%d) \;
Mas sem citar, a expansão do shell das construções $(...)
acontece antes que o comando find
seja executado . Em outras palavras, dada a linha de comando acima, que realmente é executada é:
find / -size +100M -atime +30 \
-exec mv {} /big-not-used/{}2016-10-30 \;
Porque o resultado de $(basename {})
é apenas {}
e é por isso que você acaba com o nome completo do caminho. Tente isso:
find / -size +100M -atime +30 \
-exec sh -c 'mv {} /tmp/big-not-used/$(basename {})$(date +%Y-%m-%d)' \;
Para testar as coisas, você pode substituir mv
por echo mv
, assim:
find / -size +100M -atime +30 \
-exec sh -c 'echo mv {} /tmp/big-not-used/$(basename {})$(date +%Y-%m-%d)' \;
... e veja como são os comandos gerados.