Android

Jak skopiować pliki i katalogi w systemie Linux

Linux - linia komend dla początkujących: uprawnienia do plików i katalogów

Linux - linia komend dla początkujących: uprawnienia do plików i katalogów

Spisu treści:

Anonim

Kopiowanie plików i katalogów jest jednym z najczęstszych zadań wykonywanych podczas pracy w wierszu poleceń. W Linuksie istnieje kilka poleceń do kopiowania plików, przy czym najczęściej używanymi narzędziami są cp i rsync .

Powszechną praktyką jest używanie polecenia cp podczas kopiowania plików i polecenia rsync podczas kopiowania katalogów.

Aby móc kopiować pliki i katalogi, musisz mieć przynajmniej uprawnienia do odczytu pliku źródłowego i uprawnienia do zapisu w katalogu docelowym.

Kopiowanie plików za pomocą polecenia cp

W systemach operacyjnych Linux i Unix polecenie cp służy do kopiowania plików i katalogów.

Najprostszym przypadkiem użycia jest skopiowanie pliku do bieżącego katalogu roboczego. Na przykład, aby skopiować plik o nazwie file.txt do pliku o nazwie file_backup.txt w bieżącym katalogu, uruchom następującą komendę:

cp file.txt file_backup.txt

Jeśli plik docelowy istnieje, zostanie zastąpiony. Aby otrzymać monit o potwierdzenie przed zastąpieniem plików, użyj opcji -i .

cp -i file.txt file_backup.txt

Domyślnie, gdy używasz polecenia cp do skopiowania pliku, nowy plik będzie własnością użytkownika wykonującego polecenie. Użyj opcji -p , aby zachować tryb pliku, własność i znaczniki czasu:

cp -p file.txt file_backup.txt

Inną przydatną -v jest -v . Podczas korzystania z tej opcji polecenie wypisuje, co jest robione:

cp -v file.txt file_backup.txt

'file.txt' -> 'file_backup.txt'

Skopiuj plik do katalogu

Aby skopiować plik do katalogu, określ bezwzględną lub względną ścieżkę do katalogu. Jeśli katalog docelowy zostanie pominięty, plik zostanie skopiowany do bieżącego katalogu.

W poniższym przykładzie kopiujemy plik file.txt do katalogu /backup :

cp file.txt /backup

Przy określaniu tylko nazwy katalogu jako miejsca docelowego skopiowany plik będzie miał taką samą nazwę jak plik oryginalny.

cp file.txt /backup/new_file.txt

Powyższe polecenie skopiuje plik do określonego katalogu jako new_file.txt .

Skopiuj wiele plików

Aby skopiować wiele plików i katalogów na raz, podaj nazwy plików źródłowych i katalogów, a następnie katalog docelowy jako ostatni argument:

cp file.txt dir file1.txt file2.txt dir1

Podczas kopiowania wielu plików miejscem docelowym musi być katalog.

Polecenie cp pozwala również na użycie dopasowania wzorca. Na przykład, aby skopiować wszystkie pliki .png z bieżącego katalogu do katalogu /backup , należy użyć:

cp *.png /backup

Kopiowanie katalogów za pomocą polecenia cp

Aby skopiować katalog, w tym wszystkie jego pliki i podkatalogi, użyj opcji -R lub -r . W poniższym przykładzie kopiujemy katalog Pictures do Pictures_backup :

cp -R Pictures Pictures_backup

Powyższe polecenie utworzy katalog docelowy i rekurencyjnie skopiuje wszystkie pliki i podkatalogi ze źródła do katalogu docelowego.

Jeśli katalog docelowy już istnieje, sam katalog źródłowy i cała jego zawartość zostaną skopiowane do katalogu docelowego. Aby skopiować tylko pliki i podkatalogi, ale nie katalogi docelowe, użyj opcji -T :

cp -RT Pictures Pictures_backup

Opcje używane podczas kopiowania plików mogą być również używane podczas kopiowania katalogu. Główna różnica polega na tym, że podczas kopiowania katalogów należy użyć opcji -R .

Kopiowanie plików i katalogów za pomocą polecenia rsync

rsync to szybkie i wszechstronne narzędzie wiersza poleceń, które synchronizuje pliki i katalogi między dwiema lokalizacjami. Można go używać do kopiowania plików do lokalizacji lokalnych i zdalnych.

rsync zawiera wiele opcji, które kontrolują każdy aspekt jego zachowania. Najbardziej przydatną opcją jest -a która rekurencyjnie kopiuje katalogi, przenosi urządzenia specjalne i blokowe, zachowuje dowiązania symboliczne, czasy modyfikacji, grupę, własność i uprawnienia.

Aby skopiować pojedynczy plik z jednej do innej lokalizacji, uruchom następujące polecenie:

rsync -a file.txt file_backup.txt

Jeśli plik docelowy istnieje, rsync nadpisze go.

Tego samego polecenia można użyć do skopiowania katalogu:

rsync -a /var/www/public_html/ /var/www/public_html_backup/

rsync zagraża katalogom źródłowym kończącym się ukośnikiem / inaczej. Jeśli dodasz ukośnik końcowy w katalogu źródłowym, polecenie skopiuje tylko zawartość katalogu źródłowego do katalogu docelowego. Kiedy końcowy ukośnik zostanie pominięty, rsync skopiuje katalog źródłowy do katalogu docelowego. Najbezpieczniejszą opcją jest zawsze dołączanie ukośnika / zarówno do miejsca docelowego, jak i źródła.

Aby dowiedzieć się więcej o rsync sprawdź następujące artykuły:

Wniosek

W tym przewodniku pokazaliśmy, jak kopiować pliki i katalogi w systemach Linux i Unix za pomocą narzędzi cp i rsync .

terminal cs rsync