Как да прехвърляте файлове в Linux

Как да прехвърляте файлове в Linux

Прехвърлянето на файлове е една от най-честите задачи, които ще изпълнявате в Linux. Независимо дали премествате файлове между директории на една и съща машина, споделяте файлове с други потребители в мрежата или качвате файлове на отдалечен сървър, Linux предлага широк набор от инструменти и команди, за да свършите работата. Това ръководство ще ви преведе през различни методи за прехвърляне на файлове в Linux, като обхваща както основни, така и разширени техники.

1. Локално копиране на файлове чрез cp командата

Командата cpе най-основната и често използвана команда за копиране на файлове и директории във вашата локална файлова система.

Основен синтаксис:

cp [options] source destination

  • source: Файлът или директорията, които искате да копирате.
  • destination: Мястото, където искате да копирате файла или директорията.

Пример:

За да копирате файл с име example.txtот текущата ви директория в друга директория, използвайте:

cp example.txt /path/to/destination/

За да копирате цяла директория, използвайте -r(рекурсивна) опция:

cp -r /path/to/source_directory /path/to/destination_directory/

2. Локално преместване на файлове чрез mv команда

Командата mvсе използва за преместване на файлове или директории от едно място на друго. Може да се използва и за преименуване на файлове.

Основен синтаксис:

mv [options] source destination

Пример:

За да преместите файл с име example.txtв друга директория:

mv example.txt /path/to/destination/

За да преименувате example.txtна new_example.txt, използвайте:

mv example.txt new_example.txt

3. Прехвърляне на файлове през мрежа чрез scp команда

Командата scp(сигурно копие) се използва за сигурно прехвърляне на файлове през мрежа чрез SSH.

Основен синтаксис:

scp [options] source user@host:destination

  • user: Потребителското име на отдалечената система.
  • host: IP адресът или името на домейна на отдалечената система.
  • destination: Пътят на отдалечената система, където искате да прехвърлите файла.

Пример:

За да копирате файл с име example.txt на отдалечен сървър:

scp example.txt user@10.110.110.80:/отдалеченa/директория/

За да копирате цяла директория, използвайте -rопцията:

scp -r /local/directory/ user@10.110.110.80:/отдалеченa/директория/

4. Използване rsync за ефективни прехвърляния на файлове

Командата rsyncе мощен инструмент за синхронизиране на файлове и директории между две местоположения. Той само копира разликите между източника и дестинацията, което го прави по-бърз и по-ефективен.

Основен синтаксис:

rsync [options] source destination

rsync [options] source destination

Пример:

За да синхронизирате локална директория с отдалечена директория:

rsync -avz /local/directory/ user@10.110.110.80:/отдалеченa/директория/

  • -a: Архивиран режим (запазва символни връзки, разрешения и др.).
  • -v: Многословно (показва напредъка).
  • -z: Компресира данните по време на прехвърлянето.

За да изтриете файлове в дестинацията, които не съществуват в източника:

rsync -avz --delete /local/directory/ user@10.110.110.80:/отдалеченa/директория/

5. Прехвърляне на файлове чрез sftp

Командата sftp(SSH File Transfer Protocol) предоставя интерактивен интерфейс за прехвърляне на файлове през SSH.

Основен синтаксис:

sftp user@host

Пример:

За да започнете sftp сесия с отдалечен сървър:

sftp user@10.110.110.80

След като се свържете, използвайте put за качване на файлове или get за изтегляне на файлове:

put /local/file.txt /remote/directory/
get /remote/file.txt /local/directory/

Можете да излезете от сесията, като използвате:

bye

6. Прехвърляне на файлове rsync чрез SSH

rsyncможе също да се комбинира с SSH за сигурни прехвърляния на файлове. Това често е по-ефективно, отколкото scpпри големи или чести трансфери.

Основен синтаксис:

rsync -avz -e ssh /local/directory/ user@192.168.1.10:/remote/directory/

Пример:

rsync -avz -e ssh /local/file.txt user@192.168.1.10:/remote/directory/

7. Използване curl и wget за изтегляне на файлове

curlи wgetса инструменти на командния ред, използвани за изтегляне на файлове от интернет.

Използвайки curl:

curl -O http://example.com/file.txt

  • -O: Записва файла с оригиналното му име.

Използвайки wget:

wget http://example.com/file.txt

И двата инструмента могат да изтеглят множество файлове чрез посочване на множество URL адреси:

wget http://example.com/file1.txt http://example.com/file2.txt

8. Прехвърляне на файлове чрез tar и gzip

За прехвърляне на множество файлове или директории често е удобно да ги компресирате в един архив с помощта на tar и gzip.

Създаване на архив:

tar -cvzf archive_name.tar.gz /path/to/directory/

  • -c: Създава нов архив.
  • -v: Подробен (изброява файловете, както са архивирани).
  • -z: Компресира архива с gzip.
  • -f: Указва името на архива.

Извличане на архив:

tar -xvzf archive_name.tar.gz

-x: Извлича архива.

Заключение

Прехвърлянето на файлове в Linux предлага разнообразие от инструменти, всеки от които е подходящ за различни сценарии. За местни трансфери cp и mv са вашите команди. За мрежови трансфери, scp и rsync.

Като овладеете тези инструменти, вие ще бъдете добре подготвени да се справите с всяка задача за прехвърляне на файлове в Linux, от най-простата операция за копиране до най-сложния мрежов трансфер. Всеки инструмент има своите силни страни, така че изберете този, който най-добре отговаря на вашите нужди.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: