Tente usar o libtrashcan . Depois de compilar e instalar, pré-carregue a biblioteca no seu processo.
Por exemplo, o seguinte criará um arquivo de teste e tentará removê-lo, mas devido à libtrashcan a chamada do sistema unlink
será substituída por uma movimentação, portanto, o arquivo terminará em ~/Trash
:
export LD_PRELOAD=/usr/local/lib/libtrash.so.3.3
touch testfile
rm testfile