1- Esitono funzioni (portabili e no ) contenute in libreria per fare operazioni come spostare file da cartella a cartella oppure ottenere un elenco degli stessi.
( cercando in rete mi sembra che tali funzioni non esistano chiedo conferma )
Esistono le funzioni che dipendono però dal sistema operativo. Ad esempio in Windows per spostare un file puoi utilizzare la API MoveFile() mentre in Linux utilizzerai rename().
2- In linux è consigliabile creare uno script da shell e richiamarlo da codice oppure è meglio utilizzare altri approcci al problema.
Questo dipende da quello che devi fare tu!