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/

Коли використовується для переміщення файлу в тому самому каталозі або в іншому каталозі, mv ефективно перейменовує файл, якщо вихідний і цільовий шляхи знаходяться в межах однакова файлова система.

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

Переміщення кількох файлів

Команда mv не обмежується переміщенням одного файлу за раз. Ви можете переміщувати кілька файлів одночасно за допомогою символів підстановки. Наприклад, щоб перемістити всі текстові файли з одного каталогу в інший, ви можете використати таку команду:

$ 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.

Перезапис файлів

Під час переміщення файлів ви можете зіткнутися з ситуацією, коли файл із такою ж назвою вже існує в цільовому каталозі. За замовчуванням команда mv запропонує вам підтвердження перед перезаписом файлу. Однак ви можете змінити цю поведінку за допомогою параметра -f:

$ mv -f filename destination_directory/

Будьте обережні, використовуючи параметр -f, оскільки він перезапише існуючі файли без будь-якого підтвердження.

Збереження метаданих файлів

Команда mv не лише переміщує файли, але й дозволяє зберегти їхні метадані, зокрема позначки часу та дозволи. Щоб зберегти оригінальні мітки часу файлів під час переміщення, використовуйте параметр -p:

$ mv -p filename destination_directory/

Це особливо корисно, коли ви хочете переконатися, що переміщені файли зберігають початкові мітки часу створення та модифікації.

Детальний режим

Якщо ви віддаєте перевагу перегляду детальної інформації про файли, які переміщуються, ви можете використовувати опцію -v, щоб увімкнути докладний режим:

$ mv -v filename destination_directory/

Детальний режим забезпечує зворотній зв’язок у реальному часі, відображаючи кожен файл під час його переміщення, забезпечуючи чіткіше розуміння процесу.

Переміщення каталогів

Команда mv також може легко обробляти переміщення каталогу. Щоб перемістити весь каталог і його вміст, просто вкажіть вихідний і цільовий каталоги:

$ mv source_directory/ destination_directory/

Ця команда переміщує весь вміст вихідного каталогу у вказаний цільовий каталог.

Альтернативні способи переміщення файлів у 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:

Команда cp (Копіювати) з опцією -r

Команда cp традиційно використовується для копіювання файлів, але її також можна використовувати для їх переміщення, поєднавши її з опцією -r (рекурсивно). Цей параметр необхідний при роботі з каталогами та їхнім вмістом.

$ cp -r source_directory/ destination_directory/

Ця команда рекурсивно копіює вміст вихідного каталогу в цільовий каталог і фактично виконує операцію переміщення.

Команда rsync

Команда rsync є потужним інструментом для синхронізації та копіювання файлів. Його також можна використовувати для переміщення файлів між каталогами. Основний синтаксис:

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

Параметр -a зберігає права доступу до файлу та інші атрибути.
Параметр -v увімкне докладний режим для показу файлів, що обробляються.
The –remove-source-files option removes the files from the source directory after successful transfer.

rsync особливо корисний для переміщення великих обсягів даних і підтримки синхронізації між джерелом і призначенням.

Команда find and exec

Команда find у поєднанні з exec може використовуватися для переміщення файлів на основі певних критеріїв. Наприклад, щоб перемістити всі текстові файли в каталозі та його підкаталогах у нове розташування:

$ 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.

Резюме

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 і 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.