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/

När den används för att flytta en fil inom samma katalog eller till en annan katalog, byter mv faktiskt om filen om käll- och målsökvägarna finns inom samma filsystem.

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

Flytta flera filer

Kommandot mv är inte begränsat till att flytta en enskild fil åt gången. Du kan flytta flera filer samtidigt med jokertecken. Till exempel, för att flytta alla textfiler från en katalog till en annan, kan du använda följande kommando:

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

Skriver över filer

När du flyttar filer kan du stöta på en situation där en fil med samma namn redan finns i målkatalogen. Som standard kommer kommandot mv att uppmana dig att bekräfta innan en fil skrivs över. Du kan dock åsidosätta detta beteende genom att använda alternativet -f:

$ mv -f filename destination_directory/

Var försiktig när du använder alternativet -f, eftersom det kommer att skriva över befintliga filer utan någon bekräftelse.

Bevara filmetadata

Kommandot mv flyttar inte bara filer utan låter dig också bevara deras metadata, inklusive tidsstämplar och behörigheter. För att behålla de ursprungliga tidsstämplarna för filer under flyttningen, använd alternativet -p:

$ mv -p filename destination_directory/

Detta är särskilt användbart när du vill säkerställa att de flyttade filerna behåller sina ursprungliga tidsstämplar för skapande och ändring.

Utförligt läge

Om du föredrar att se detaljerad information om filerna som flyttas kan du använda alternativet -v för att aktivera verbose mode:

$ mv -v filename destination_directory/

Utförligt läge ger feedback i realtid, visar varje fil när den flyttas, vilket ger en tydligare förståelse av processen.

Flytta kataloger

Kommandot mv kan också sömlöst hantera katalogrörelser. För att flytta en hel katalog och dess innehåll, ange helt enkelt käll- och målkataloger:

$ mv source_directory/ destination_directory/

Detta kommando flyttar hela innehållet i källkatalogen till den angivna målkatalogen.

Alternativa sätt att flytta filer i 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 (Kopiera) Kommandot med alternativet -r

Kommandot cp används traditionellt för att kopiera filer, men det kan också användas för att flytta dem genom att kombinera det med alternativet -r (rekursivt). Det här alternativet är nödvändigt när du hanterar kataloger och deras innehåll.

$ cp -r source_directory/ destination_directory/

Detta kommando kopierar rekursivt innehållet i källkatalogen till målkatalogen och åstadkommer en flyttoperation.

rsync kommando

Kommandot rsync är ett kraftfullt verktyg för att synkronisera och kopiera filer. Den kan också användas för att flytta filer mellan kataloger. Den grundläggande syntaxen är:

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

Alternativet -a bevarar filbehörigheterna och andra attribut.
Alternativet -v aktiverar verbose läge för att visa filerna som bearbetas.
The –remove-source-files option removes the files from the source directory after successful transfer.

rsync är särskilt användbart för att flytta stora mängder data och upprätthålla synkronisering mellan källa och destination.

hitta och kör kommandot

Find-kommandot, kombinerat med exec, kan användas för att flytta filer baserat på vissa kriterier. Till exempel, för att flytta alla textfiler i en katalog och dess underkataloger till en ny plats:

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

Sammanfattning

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 hitta och 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.