Copying files terminal mac os

Move and copy files in Terminal on Mac

In Terminal, you can move and copy files locally or remotely using the mv , cp and scp command-line tools.

Tip: It’s easier to move and copy files using the Finder. See Organise files in folders.

Move a file or folder locally

In the Terminal app on your Mac, use the mv command to move files or folders from one location to another on the same computer. The mv command moves the file or folder from its old location and puts it in the new location.

For example, to move a file from your Downloads folder to a Work folder in your Documents folder:

You can also change the name of the file as it’s moved:

Copy a file or folder locally

In the Terminal app on your Mac, use the cp command to make a copy of a file.

For example, to copy a folder named Expenses in your Documents folder to another volume named Data:

The -R flag causes cp to copy the folder and its contents. Note that the folder name does not end with a slash, which would change how cp copies the folder.

Copy a file or folder remotely

In the Terminal app on your Mac, use the scp command to copy a file or folder to or from a remote computer.

scp uses the same underlying protocols as ssh .

For example, to copy a compressed file from your home folder to another user’s home folder on a remote server:

You’re prompted for the user’s password.

The -E flag preserves extended attributes, resource forks and ACL information.

The -r flag, which isn’t used in this example, causes scp to copy a folder and its contents.

Источник

Секреты Терминала. Часть 4: Операции над объектами

Мы возвращаемся к нашему циклу статей о Терминале Mac OS X, где излагаются премудрости работы на Маке через командную строку. Сегодня мы подходим к самому важному уроку — операции над файлами и папками. Мы рассмотрим команды для копирования, перемещения, переименования и удаления объектов — cp, mv, rm. Не удивляйтесь, что для четырёх названных действий предназначены три команды. Как вы узнаете из дальнейшего повествования, одна из них умеет гораздо больше, чем кажется сначала.

Итак, начнём с копирования и команды cp.

Стандартный синтаксис команды копирования такой:

cp -(параметры) (что копируем) (куда копируем)

Параметры команды, путь к копируемому файлу и адрес для размещения копии разделяются пробелами. А если пробел есть внутри какого-то из путей, то, как вы помните, надо либо поставить перед ним обратный слэш (\ пробел) или заключить весь путь в одинарные кавычки (‘путь с пробелами’).

Самое главное в этой команде — именно параметры. Например, без дополнительных параметров вы не сможете даже скопировать папку — по умолчанию команда cp работает только для отдельных файлов.

Этот параметр нужен, если вы копируете папку. Обратите внимание на очень важный нюанс: от того, как вы напишете путь к папке, зависит то, как она скопируется. Возьмёме простой пример: откройте Терминал и введите команду:

Вы получите ошибку о том, что Sites — это директория, и она не может быть скопирована.

Теперь попробуйте немного другой вариант:

Папка с сайтами скопируется на Рабочий стол. Попробуйте третий вариант:

Вы увидите, что на Рабочий стол скопировалась не сама папка сайтов, а только её содержимое.

Запомните это правило — слэш в конце пути копируемой папки не копирует её саму.

Это опасный параметр. Он означает, при совпадении имён копируемого файла с уже имеющимся в папке, куда он копируется, этот файл будет стёрт безо всяких предупреждений и уведомлений.

Это параметр для тех, кто склонен острожничать. При первом же совпадении имён вы увидите вот такой вопрос:

Читайте также:  Очистка памяти линукс минт

От того, что вы нажмёте на клавиатуре (y или n), будет зависеть судьба файла в папке назначения. Количество таких вопросов будет равно количеству объектов с совпадающими именами.

Это полная противоположность параметру -f. Копирование не перезапишет ни один файл с совпадающими именами и не задаст вам никаких лишних вопросов.

Данный параметр прикажет Терминалу при копировании сохранять атрибуты исходного файла: его владельца, права доступа, группу, время изменения и открытия. Всегда ставьте этот параметр, если вы копируете системные файлы. В противном случае их права будут безнадёжно испорчены, и вас могут ждать серьёзные ошибки в системе.

В этом случае Терминал покажет вам все скопированные файлы в формате «что копировалось» -> «куда скопировалось»:

Как всегда, параметры можно совмещать. И для вашего удобства параметр -R вполне разрешено писать строчными буквами.

Возникает вопрос, а что будет, если задать заведомо противоречащие параметры, например:

Отвечаем: в этом случае имеет значение порядок параметров. Второй параметр окажется сильнее первого, и копирование затрёт совпадающие по именам файлы. А вот если написать:

то параметр -n «пересилит» параметр -f.

(эквивалент cp -dpR ) — в этом случае команда не будет обрабатывать символьные ссылки, рекурсивно обрабатывает все подкаталоги и сохраняет новые атрибуты файлы, вроде имени владельца. Очень удобна в том плане, что всякого рода «ярлыки» и прочие вещи, которые информационной ценности не несут, будут просто проброшены данной командой.

Данная команда имеет двойное назначение — она умеет перемещать и переименовывать объекты. Очень многое здесь зависит от синтаксиса. Общий принцип работы у команды mv схож с cp:

mv -(параметры) (что перемещаем/переименовавываем) (куда перемещаем/во что переименовывыем)

Допустим, вы хотите переименовать файл File1.txt на рабочем столе в File2.txt. В Терминале вам понадобится команда:

Запомните: если в качестве второго адреса в команде mv задан путь к файлу, то произойдёт переименование. Разумеется, папка в первом и во втором пути должна быть одна и та же, тогда это уже не будет просто переименованием. Например, если вы введёте команду:

то с Рабочего стола файл File1.txt бесследно исчезнет. Зато в корне диска появится файл File2.txt с точно таким же содержимым.

И третья ситуация — просто перемещение (без переименования):

Файл будет перемещён с Рабочего стола в ваше папку «Загрузки». Иными словами, если в качестве второго адреса в команде mv задан путь к папке, то произойдёт перемещение.

Теперь о параметрах команды mv. Их всего четыре, и все они совпадают с параметрами команды cp:

  • mv -f форсирует перезапись объектов с одинаковыми именами
  • mv -n предотвращает такую перезапись
  • mv -i каждый раз спросит вас о перезаписи
  • mv -v покажет подробные сведения о перемещении

Обратите внимание на отсутствие параметра -R. Команде mv абсолютно всё равно, с чем она имеет дело. Она без лишних вопросов умеет перемещать и переименовывать как файлы, так и папки.

Эта команда предназначена для удаления объектов. Из всех рассмотренных в нашем курсе команд она наиболее опасна. Файлы удаляются навсегда и в обход Корзины. Восстановить их весьма проблематично. Именно поэтому всегда дважды (а то и трижды) проверяйте введённые вместе с командой rm параметры и аргументы!

Синтаксис у неё ещё проще:

rm -(параметры) (путь к удаляемому объекту)

А вот её параметры:

  • rm -f форсирует удаление без предупреждений
  • rm -i запрашивает подтверждение на стирание каждого объекта
  • rm -v удаляет объекты в подробном режиме

Обратите внимание, что rm, как и cp, не умеет по умолчанию удалять директории. В связи с этим для неё актуален параметр -R (или -r).

Есть у rm и ещё один занятный параметр для конфиденциальной информации:

Заглавная P в числе параметров не просто удаляет файл, но и трижды перезаписывает место на диске, где он хранился, сводя вероятность восстановления данных к нулю.

Покажем ещё раз опасность команды rm. Допустим, вы хотели удалить папку Temp в корне диска:

и случайно опечатались, поставив пробел после слэша:

Так как у rm есть только один аргумент, она воспримет только то, что находится между параметрами -rf и следующим пробелом. А там у вас / — т.е. всё содержимое диска. А теперь подумайте, что ждёт ваш Мак, если вы выполните эту команду от имени корневого администратора (с приставкой sudo).

Читайте также:  Что такое сокеты линукс

В связи с этим, старайтесь не использовать команду rm без параметра -i. Хоть это и нудно, зато обезопасит вас от многих роковых ошибок.

rmdir

Это безопасный аналог команды rm , применим в том случае, когда каталог пуст, в противном случае команда не удалит его, тем самым обезопасив Вас, не стирая папку с файлами, как если бы мы вызвали rm -rf . Настоятельно рекомендуем применять эту команду, если стоит цель удалить заведомо пустой каталог, не стоит применять рекурсивное удаление, мы можем затронуть то, что не хотели бы.

На этом сегодняшний урок по Терминалу можно считать оконченным. Далее по курсу — создание папок и файлов.

Источник

kwcto / mac-file-transfer-via-command-line.md

Mac File Transfer via Single User Mode / Command Line

  • Start in Single User Mode by holding down Command-S when starting the Mac.
  • Commands can also be typed via Terminal app when OS X is running.

Terminal Command Workflow

  1. Type diskutil list to view available drives
  2. Type diskutil mount /dev/disk1s2 (Disk 1, Partition Scheme 2 — may be different on your Mac) to gain read/write access on that disk.
  3. Type cd /Volumes to switch current folder to Volumes where Mac OS lists all mounted drives.
  4. Type ls to list contents of Volumes folder.
  5. Type mkdir to create a new folder (on the USB drive)
  6. The cp -a command copies files/folders from one path to another.

Start in Single-User Mode by holding Command-S as mentioned above You type -> diskutil list

/dev/disk0 (Physical Disk #1: Macintosh HD)

/dev/disk1 (Physical Disk #2: PIZZA_PIZZA_256GB)

You type -> diskutil mount /dev/disk1s2

You type -> cd /Volumes

You type -> ls

You type -> cd /Volumes/PIZZA_PIZZA_256GB
You type -> mkdir RecoveredFiles
You type -> cd RecoveredFiles
You type -> cp -a

Which should copy the entire Mac Photos folder to /Volumes/PIZZA_PIZZA_256GB/RecoveredFiles/Photos

  1. An empty line after running the cp command indicates success
  2. Copy folder and contained files together using cp -a /Source/FolderName /Destination/FolderName
  3. Copy single files without the -a using cp /Source/file.jpg /Destination/file.jpg

/Photos is the same as /Users/alex/Photos

More copying examples

You type -> cp

/Photos/myphoto.jpg Photos/myphoto.jpg
You type -> cp -a

/Documents /Volumes/PIZZA_PIZZA_256GB/RecoveredFiles/Documents
You type -> cp -a

Источник

Question: Q: using Terminal to copy files from external usb drive to another external hdd

New to using Terminal so be gentle. I keep my lightroom catalog on a little external thumbdrive on my macair. Now the thumbdrive does not appear in the Finder but it is present in Disk Utility and in Terminal. So I want to copy my lightroom catalog as well as the few photos saved to this thumbdrive to another external hd so I can attempt to reformat this drive, which may solve the Finder issue.

My question is, I am very new to Terminal and all I know is that I want to COPY the files not MOVE the files. I don’t know how to properly write the command lines to tell Terminal where my Directories are and where I want to send them (so i don’t know how to indicate paths) and i don’t know the proper Terminal to execute a Copy Directory.

MacBook Air, iOS 10.1.1

Posted on Jan 5, 2017 4:10 AM

Helpful answers

Restore will not erase the Source. It will erase the destination. I’m not sure where you got that idea from.

I gave you one Finder option which will work if the drive is visible in Terminal. The rest are just other GUI options

cp -R source_dir target_directory

Don’t put a trailing / on source_dir so it will copy that folder also.

That’s the best I can offer since you didn’t give the rest of the information.

Now, not knowing anything about a Lightroom catalog structure, there may be other options required in the copy command to pull it over correctly. If the catalog contains hard links, then you can’t use copy.

Jan 5, 2017 5:40 AM

The paths in Terminal should be

in each case. If there is a space in a name it should be preceded by a backslash — \

If you have more than directory at root level you could presumably just leave that bit off. You mentioned in your first post that you wanted to format the thumb drive — you are aware that this will erase its contents?

Jan 5, 2017 6:36 AM

There’s more to the conversation

Loading page content

Page content loaded

Before going into Terminal, in the Finder look at menu Finder>Preferences; select ‘Sidebar’ and under ‘Devices’ make sure ‘External Disks’ are checked. Then open a Finder window and see if your thumb drive appears in the sidebar.

Jan 5, 2017 4:13 AM

everything is checked, the other external drive i’m trying to transfer to appears in Finder.

Jan 5, 2017 4:18 AM

Open Terminal and type man cp . You will need to keep hitting the return key to see more of the article. It looks as if cp -R may be the instruction you need but read the manual to check.

Jan 5, 2017 4:27 AM

man cp is tmi for someone who only ever used Terminal to disable Apple Photos from launching and I only did that by literally copying and pasting code. Which is what I’m looking for here.

Jan 5, 2017 4:41 AM

In Disk Utility make sure the drive is mounted. You may also want to verify the drive. If you can get it mounted and displayed I would just use Finder to copy the files. Dragging from one drive to another copies files, not move.

Jan 5, 2017 4:47 AM

He says that the drive doesn’t appear in the Finder, though it does in Disk Utility and Terminal, thus making simple drag and drop impossible.

loosecaboose — have you tried ‘Repair disk’ in Disk Utility?

Jan 5, 2017 4:50 AM

i’m looking for a solution using Terminal. OS X ie Finder is not an option and Disk Utility repair says there is nothing wrong with the drive and I see the data is on the drive. I need lines of code in Terminal to pull the data off the drive and transfer it to another drive so I can reformat my drive.

Jan 5, 2017 4:57 AM

man cp is tmi for someone who only ever used Terminal to disable Apple Photos from launching and I only did that by literally copying and pasting code. Which is what I’m looking for here.

Use another GUI tool to copy the disk, then. If it shows in Disk Utility and is accessible in Terminal, there is no reason short of some setting that is preventing it from showing in the Finder (Go Computer, perhaps).

Carbon Copy Cloner or SuperDuper would likely be able to see it if it is mounted.

Or, use the Restore function in Disk Utility to copy one to the other. Select the empty drive in Disk Utility and click the Restore button. Set the source disk in the popup menu. That will completely replace the contents of the destination drive with the contents of the source drive. The destination would have to be at least as big as the source.

If you only know how to copy and paste «some code,» then you will likely end up wiping out your drive instead of copying it. Then, you’d just blame us.

We’d have to know the name of each of the volumes as shown in /Volumes to provide the necessary code for you to copy and paste.

Источник

Оцените статью