Як скопіювати файли на комп’ютери за допомогою SSH та MAC OS X Terminal [закрито]


205

Я намагаюся скопіювати свої папки .profile, .rvm та .ssh на новий комп’ютер і продовжую отримувати відповідь "не звичайний файл". Я знаю, як використовувати команди cpта sshкоманди, але я не впевнений, як їх використовувати для передачі файлів з одного комп'ютера на інший.

Будь-яка допомога була б чудовою, дякую!


8
Хоча ви вже знайшли відповіді, чи можу я все ж рекомендувати superuser.com?
KevinDTimm

Відповіді:


436

Це можна зробити за допомогою scpкоманди, яка використовує протокол ssh для копіювання файлів на машини. Він розширює синтаксис, cpщоб дозволити посилання на інші системи:

scp username1@hostname1:/path/to/file username2@hostname2:/path/to/other/file

Скопіюйте щось із цієї машини на іншу машину:

scp /path/to/local/file username@hostname:/path/to/remote/file

Скопіюйте щось з іншої машини на цю машину:

scp username@hostname:/path/to/remote/file /path/to/local/file

Скопіюйте із вказаним номером порту:

scp -P 1234 username@hostname:/path/to/remote/file /path/to/local/file

1
Я думаю, що вживання ОП словосполученням "як їх використовувати для передачі" може бути переписане як "як використовувати їх для передачі". Wordy, можливо, але не страшно помиляється.
Марка високої продуктивності

2
@High: А справді. :) отримує більше кави
Ефір

2
Дякую @Ether, але, на жаль, я продовжую отримувати відповідь "не звичайний файл" для каталогів, які починаються з "." як-от папка .rvm, яку я намагаюся передати, будь-які поради?
alvincrespo

1
не хвилюйся. Зрозумів! Мені потрібно використовувати -r (r для рекурсивного), щоб залучити цілі структури каталогів. Дуже дякую!
alvincrespo

1
Так, ви можете використовувати -rдля рекурсивного або просто застебнути файли та націлити на блискавку.
Ерік Холмс

14

Спочатку застебніть або gzip папки:
Використовуйте таку команду:

zip -r NameYouWantForZipFile.zip foldertozip /

або

tar -pvczf BackUpDirectory.tar.gz / шлях / до / каталог

для стиснення gzip використовуйте SCP:

scp username@yourserver.com: ~ / serverpath / public_html ~ / Робочий стіл


1

Ви також можете подивитися на rsync, якщо ви робите багато файлів.

Якщо ви збираєтеся внести багато змін і хочете синхронізувати каталоги та файли, можливо, ви хочете скористатися системою контролю версій на зразок Subversion або Git. Дивіться http://xoa.petdance.com/How_to:_Keep_your_home_directory_in_Subversion


1
Дякую @Andy, ми тут використовуємо SVN на роботі, але я просто придбав новий комп’ютер і хотів навчитися робити все за допомогою командного рядка, оскільки хлопці вважають за краще тут. Я
вчусь
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.