La comanda mv (de move) serveix per a dues coses que a Linux són la mateixa: moure fitxers i directoris d’un lloc a un altre i canviar-los el nom. No hi ha cap comanda rename estàndard per canviar el nom d’un fitxer: es fa amb mv.
Sintaxi
mv [opcions] origen destí
mv [opcions] origen... directori/
- Si el destí és un directori que existeix, l’origen es mou a dins i conserva el nom.
- Si el destí no existeix, l’origen passa a dir-se així (canvi de nom).
- Si el destí és un fitxer que existeix, se sobreescriu sense preguntar, tret que facis servir
-io-n.
Opcions més útils
| Opció | Què fa |
|---|---|
-i | Pregunta abans de sobreescriure un fitxer existent |
-n | No sobreescriu mai cap fitxer existent |
-f | No pregunta mai (és el comportament per defecte; anul·la un -i anterior) |
-u | Només mou si l’origen és més nou que el destí, o si el destí no existeix |
-b | Si sobreescriu, abans fa una còpia de seguretat del destí (acabada en ~) |
-v | Mostra què fa |
-t directori | Indica el directori de destí al principi (pràctic amb xargs i find) |
Exemples
Canviar el nom d’un fitxer:
$ mv -v informe.txt informe_2026.txt
renamed 'informe.txt' -> 'informe_2026.txt'
Moure un fitxer a un altre directori:
mv informe_2026.txt ~/Documents/
Moure i canviar el nom alhora:
mv dades.csv arxiu/dades_antigues.csv
Moure diversos fitxers a un directori:
mv foto1.jpg foto2.jpg foto3.jpg ~/Imatges/
mv *.jpg ~/Imatges/
Moure o reanomenar un directori sencer. A diferència de cp, no cal cap opció -r:
mv projecte projecte_vell
Demanar confirmació abans de sobreescriure:
$ mv -i notes.txt desti/
mv: overwrite 'desti/notes.txt'?
Respon y per sobreescriure o n per deixar-lo com està.
Sobreescriure, però guardant una còpia del fitxer que hi havia:
$ mv -b notes.txt desti/
$ ls desti
notes.txt notes.txt~
Com funciona per dins
Dins del mateix sistema de fitxers, mv no copia res: només canvia l’entrada del directori. Per això moure un fitxer de 50 GB d’una carpeta a una altra del mateix disc és instantani.
Si l’origen i el destí són en sistemes de fitxers diferents (un altre disc, una memòria USB, una partició diferent), mv ha de copiar les dades i després esborrar l’original. Tarda el que tardaria una còpia i, si s’interromp a mitges, pots quedar-te amb una còpia incompleta. Per a moviments grans entre discos és més segur copiar amb rsync, comprovar-ho i esborrar l’original després.
Compte amb…
mvsobreescriu sense avisar. Si treballes amb fitxers importants, fes servir-io-n. Hi ha qui posaalias mv='mv -i'al~/.bashrc.- Fitxers que comencen per guió:
mv -fitxer.txt nou.txtdona error perquèmvllegeix-fitxer.txtcom a opcions. Fesmv -- -fitxer.txt nou.txtomv ./-fitxer.txt nou.txt. - Moure un directori sobre un altre que ja existeix:
mv fotos copies/posafotosdins decopiessi aquest existeix; si no existeix, el que fa és canviar el nom defotosacopies. Comprova-ho amblsabans. - No existeix
mv -p: els permisos, el propietari i les dates es conserven sempre quan mous dins del mateix disc, perquè és el mateix fitxer.
Canviar el nom de molts fitxers
mv treballa amb un fitxer (o un destí) cada vegada. Per reanomenar en massa pots fer servir un bucle de Bash:
# Canviar l'extensió .jpeg per .jpg
for f in *.jpeg; do mv -- "$f" "${f%.jpeg}.jpg"; done
Per a casos més complexos hi ha eines específiques, com rename (paquet rename a Debian i Ubuntu) o find amb -exec.
Comandes relacionades
cp: copiar fitxers i directoris.rm: esborrar fitxers i directoris.mkdir: crear el directori de destí.ln: crear enllaços en lloc de moure.- Còpies de seguretat i sincronització amb
rsync.