mv command in linux terminal

How to Move Files in Linux: Mastering “mv” command

To move files in Linux you need to use the mv command. Here are some examples:

# move file1 to file2 (what command actually does is renaming the file)
$ mv file1 file2
# move file1 from dir1 to dir2
$ mv folder1/file1 folder2/
# move all files from folder1 to folder2
$ mv folder1/* folder2/

Kiedy zostanie użyte do przeniesienia pliku w tym samym katalogu lub do innego katalogu, mv skutecznie zmienia nazwę pliku, jeśli ścieżki źródłowa i docelowa znajdują się w ten sam system plików.

Now when we touched the basics of the ‘mv’ command in Linux, lets explore more ways to efficiently move files and directories.

Mastering the “mv” command

Przenoszenie wielu plików

Polecenie mv nie ogranicza się do przenoszenia pojedynczego pliku na raz. Możesz przenosić wiele plików jednocześnie, używając symboli wieloznacznych. Na przykład, aby przenieść wszystkie pliki tekstowe z jednego katalogu do drugiego, możesz użyć następującego polecenia:

$ mv *.txt destination_directory/

This command selects all files with the “.txt” extension and moves them to the specified destination directory. The asterisk (*) acts as a wildcard, matching any characters.

Nadpisywanie plików

Podczas przenoszenia plików może wystąpić sytuacja, w której plik o tej samej nazwie już istnieje w katalogu docelowym. Domyślnie polecenie mv wyświetli monit o potwierdzenie przed nadpisaniem pliku. Można jednak zastąpić to zachowanie, używając opcji -f:

$ mv -f filename destination_directory/

Zachowaj ostrożność podczas używania opcji -f, ponieważ spowoduje ona nadpisanie istniejących plików bez żadnego potwierdzenia.

Zachowywanie metadanych plików

Komenda mv nie tylko przenosi pliki, ale także pozwala zachować ich metadane, w tym znaczniki czasu i uprawnienia. Aby zachować oryginalne znaczniki czasu plików podczas przenoszenia, użyj opcji -p:

$ mv -p filename destination_directory/

Jest to szczególnie przydatne, gdy chcesz mieć pewność, że przenoszone pliki zachowają oryginalne znaczniki czasu utworzenia i modyfikacji.

Tryb szczegółowy

Jeśli wolisz zobaczyć szczegółowe informacje o przenoszonych plikach, możesz użyć opcji -v, aby włączyć tryb szczegółowy:

$ mv -v filename destination_directory/

Tryb szczegółowy zapewnia informacje zwrotne w czasie rzeczywistym, wyświetlając każdy przenoszony plik, zapewniając lepsze zrozumienie procesu.

Przenoszenie katalogów

Polecenie mv może również bezproblemowo obsługiwać przenoszenie katalogów. Aby przenieść cały katalog wraz z jego zawartością, po prostu określ katalog źródłowy i docelowy:

$ mv source_directory/ destination_directory/

To polecenie przenosi całą zawartość katalogu źródłowego do określonego katalogu docelowego.

Alternatywne sposoby przenoszenia plików w systemie Linux

In addition to the mv command, Linux provides a few other commands and utilities for moving files and directories. Here are a couple of alternatives:

Polecenie cp (Kopiuj) z opcją -r

Polecenie cp jest tradycyjnie używane do kopiowania plików, ale można go również wykorzystać do ich przenoszenia, łącząc je z opcją -r (rekurencyjną). Ta opcja jest konieczna, gdy mamy do czynienia z katalogami i ich zawartością.

$ cp -r source_directory/ destination_directory/

To polecenie rekurencyjnie kopiuje zawartość katalogu źródłowego do katalogu docelowego i skutecznie wykonuje operację przenoszenia.

Polecenie rsync

Polecenie rsync to potężne narzędzie do synchronizowania i kopiowania plików. Można go również używać do przenoszenia plików pomiędzy katalogami. Podstawowa składnia to:

$ rsync -av --remove-source-files source_directory/ destination_directory/

Opcja -a zachowuje uprawnienia do plików i inne atrybuty.
Opcja -v włącza tryb szczegółowy, aby pokazać przetwarzane pliki.
The –remove-source-files option removes the files from the source directory after successful transfer.

rsync jest szczególnie przydatny do przenoszenia dużych ilości danych i utrzymywania synchronizacji między źródłem a miejscem docelowym.

znajdź i wykonaj polecenie

Polecenie find w połączeniu z exec może służyć do przenoszenia plików w oparciu o określone kryteria. Na przykład, aby przenieść wszystkie pliki tekstowe z katalogu i jego podkatalogów do nowej lokalizacji:

$ find source_directory/ -type f -name "*.txt" -exec mv {} destination_directory/

This command finds all files (-type f) with the “.txt” extension and executes the mv command on each of them, moving them to the specified destination.

Podsumowanie

Mastering the mv command in Linux is essential for efficient file and directory management. We’ve covered the fundamental usage of the mv command, from simple file renaming to moving entire directories. Additionally, we explored alternative commands like cp with the -r option, the rsync command, and the dynamic combination of find I exec for more specialized moves. By incorporating these commands into your Linux toolkit, you empower yourself to manage files seamlessly and make the most of the robust capabilities that the Linux command line provides.