Komendy Linux: Przenoszenie plików, zmiana nazw danych
W systemie można przenosić pliki i katalogi oraz zmieniać ich nazwy. Jest to o tyle proste, że wymaga użycia tyko jednego polecenia - mv. Aby zmienić nazwę pliku, używamy tego polecenia, podając za nim starą nazwę istniejącego już pliku i tę, na jaką chcemy ją zamienić. Załóżmy, że mamy plik plik1 i chcemy zmienić jego nazwę na plik2.
user@linux:~$ ls -l
-rw-rw-r-- 1 user user plik1
user@linux:~$ mv plik1 plik2
user@linux:~$ ls -l
-rw-rw-r-- 1 user user plik2
Przenosimy elementy niemal tak samo; jedyna różnica polega na tym, iż pierwszą nazwą jest element, który chcemy przenieść, a drugą element docelowy. Ten drugi musi istnieć fizycznie na dysku; w innym wypadku polecenie to zmienia nazwę pierwszego elementu. Spróbujmy przenieść katalog kat1 do katalogu kat2.
user@linux:~$ ls
katl kat2
user@linux:~$ mv katl kat2
user@linux:~$ ls
kat2
Parametry polecenia (mv):
-b [metoda], --backup[=metoda]
Jeżeli przenosimy plik do katalogu, w którym istnieje już plik o tej samej nazwie, ten drugi zostanie nadpisany, wskutek czego możemy stracić zapisane w nim ważne dane. Aby tego uniknąć, powinniśmy użyć parametru -b. Jeżeli zdarzy się, że nazwa przenoszonego pliku będzie identyczna z nazwą jakiegoś innego pliku znajdującego się w docelowej lokalizacji, zostanie utworzona kopia tego drugiego, istniejącego już pliku, a jego oryginał zostanie nadpisany przez przenoszony.
[lukasz@linux linux]$ mv -b plik1 katalog
[lukasz@linux linux]$ ls katalog
plik1 plik1~
-f , --force
Jeżeli w katalogu, do którego chcemy przenieść dany plik, istnieje już plik o takiej nazwie, to po użyciu tego parametru zostanie on nadpisany bez powiadamiania o tym użytkownika.
user@linux:~$ mv -f plik1 katalog
-i , --interactive
Jeżeli w katalogu, do którego chcemy przenieść plik, istnieje już plik o tej samej nazwie, dzięki użyciu tego parametru program "zapyta", czy chcemy go nadpisać. Możemy zatwierdzić decyzję klawiszem y lub anulować - dowolnym innym.
user@linux:~$ mv -i plik1 katalog
mv : overwrite " katalog/plikl '? y
-S przyr_kopii , --suffix=przyr_kopii
Tego parametru używamy wraz z parametrem - b . Umożliwia on zdefiniowanie własnego sufiksu kopii zapasowej pliku, który zostanie nadpisany.
user@linux:~$ mv -b -S _kopia plik1 katalog
user@linux:~$ ls katalog
plik1 plik1_kopia
-u , --update
Jeżeli w katalogu, do którego chcemy przenieść plik, istnieje już inny o takiej samej nazwie, to zostanie on nadpisany jedynie wtedy, gdy data modyfikacji przenoszonego pliku jest nowsza niż tego, który znajduje się w katalogu docelowym.
user@linux:~$ mv plik1 katalog
user@linux:~$ ls katalog plik1
-v , --verbose
W przypadku użycia tego parametru program informuje nas o każdym pliku, który został przeniesiony.
user@linux:~$ mv -v plik1 katalog
'plik1' -> 'katalog/plik1'