Redenumirea fișierelor este una dintre cele mai de bază sarcini pe care de multe ori trebuie să le efectuați pe un sistem Linux. Puteți redenumi fișierele utilizând un manager de fișiere GUI sau prin terminalul din linia de comandă.
Redenumirea unui singur fișier este ușoară, dar redenumirea mai multor fișiere simultan poate fi o provocare, în special pentru utilizatorii care sunt noi în Linux .
În acest tutorial, vă vom arăta cum să utilizați comenzile mv
și rename
pentru a redenumi fișierele și directoare.
Redenumirea fișierelor cu comanda mv #
Comanda mv
(scurtă de mutare) este utilizată pentru a redenumi sau muta fișiere din dintr-o locație în alta. Sintaxa pentru comanda mv
este după cum urmează:
poate fi unul sau mai multe fișiere sau directoare și destination
poate fi un singur fișier sau director.
- Dacă specificați mai multe fișiere ca
source
,destination
trebuie să fie un director. În acest caz, fișierelesource
sunt mutate în directorul țintă. - Dacă specificați un singur fișier ca
source
, iar țintadestination
este un director existent, apoi fișierul este mutat în directorul specificat. - Pentru a redenumi un fișier, trebuie să specificați un singur fișier ca
source
și un singur fișier cadestination
țintă.
De exemplu, pentru a redenumiți fișierul file1.txt
ca file2.txt
pe care l-ați rula:
Redenumirea mai multor fișiere cu comanda mv #
Comanda mv
poate redenumi un singur fișier la un moment dat, dar poate fi utilizat împreună cu alte comenzi, cum ar fi ca find
sau în interiorul bash for
sau while
bucle pentru a redenumi mai multe fișiere.
Următorul exemplu arată cum să utilizați bucla Bash for pentru a redenumi toate .html
fișiere din directorul curent prin schimbarea extensiei .html
la .php
.
Să analizăm codul rând cu rând:
- Prima linie creează un
for
buclă și parcurge o listă a tuturor fișierelor cu.html
. - A doua linie se aplică fiecărui element din listă și mută fișierul într-un unul nou care înlocuiește
.html
cu.php
. Partea${file%.html}
folosește extensia parametrului shell pentru a elimina partea.html
din numele fișierului. -
done
indică sfârșitul segmentului de buclă.
Iată un exemplu care folosește mv
în combinație cu find
pentru a obține același lucru ca mai sus:
transmite toate fișierele care se termină cu .html
din directorul curent către mv
unul câte unul folosind -exec
opțiune. Șirul {}
este numele fișierului în curs de procesare.
După cum puteți vedea din exemplele de mai sus, redenumirea mai multor fișiere utilizând nu este o sarcină ușoară, deoarece necesită o bună cunoaștere a scripturilor Bash.
Redenumirea fișierelor cu redenumirea comenzii #
rename
comanda este utilizată pentru a redenumi mai multe fișiere. Această comandă este mai avansată decât mv
deoarece necesită cunoștințe de bază despre expresiile regulate.
Există două versiuni ale rename
comandă cu sintaxă diferită. În acest tutorial, vom folosi versiunea Perl a comenzii rename
. Dacă nu aveți această versiune instalată pe sistemul dvs., o puteți instala cu ușurință utilizând managerul de pachete al distribuției dvs.
-
Instalați
rename
pe Ubuntu și Debian -
Instalați
rename
pe CentOS și Fedora -
Instalați
rename
pe Arch Linux
Sintaxa pentru comanda rename
este după cum urmează:
Comanda rename
va redenumi files
în conformitate cu perlexpr
expresie regulată. Puteți citi mai multe despre expresiile regulate perl aici.
Următorul exemplu va schimba toate fișierele cu extensia .html
la .php
:
Puteți utiliza opțiunea -n
pentru a imprima numele fișierelor care vor fi redenumite, fără a le redenumi.
Ieșirea va arăta cam așa:
În mod implicit, comanda rename
nu suprascrie fișierele existente. Treceți opțiunea -f
pentru a permite suprascrierea fișierelor existente:
Mai jos sunt câteva mai frecvente exemple de utilizare a comenzii rename
:
Concluzie #
V-am arătat cum să utilizați mv
și rename
comenzi pentru redenumirea fișierelor.
Există și alte comenzi pentru redenumirea fișierelor în Linux, cum ar fi mmv
. Noii utilizatori Linux care sunt intimidați de linia de comandă pot folosi instrumente GUI pentru redenumirea lotului, cum ar fi Métamorphose.