В Linux копировать файлы — как нарезать хлеб. Все думают, что умеют, пока не отрежут себе палец. Казалось бы, есть команда cp, и всё — бей в барабан, копируй. Но нет, любой новичок рано или поздно перезапишет что-то важное, потому что не удосужился добавить одну букву в команду. А потом — паника, истерика, попытка «восстановить всё как было» (не будет).

Так что давай без розовых пони: если работаешь в консоли, запомни пару правил, иначе в один момент cp превратится в команду «Command to Panic».

Команда, которая всё портит и спасает

Всё копирование в Linux крутится вокруг cp. Синтаксис настолько скучный, что им можно усыпить:

cp [опции] источник назначение

И вот тут начинается магия опций. Проблема в том, что большинство думает: «Да кому они нужны?». А потом — хоба, и твой report-final-v3-really-final.docx заменён пустышкой.

Минимальный набор, чтобы не устроить себе мини-апокалипсис:

  • -i — спрашивать перед перезаписью. Лишние три секунды, зато нервы целы.
  • -r — рекурсивно копировать папки. Без неё твой «бэкап» окажется пустым, как холодильник после зарплаты.
  • -v — показывает, что именно копируешь. Иногда полезно, чтобы потом не бегать в поисках «а куда всё делось».

Примеры из реальности

1. Копируешь файл в файл:

cp file1.txt file2.txt

Просто, но без -i легко стереть что-то важное.

2. Копируешь файл в папку:

cp file1.txt dir1/

Если забыл слэш или перепутал имена, получишь сюрприз.

3. Копируешь папку целиком:

cp -r dir1/ dir2/

Без -r ничего не скопируется, а ты будешь чесать репу, почему «оно пустое».

О копировании папок и других засадах

Копировать папки в Linux — почти то же, что файлы, но всегда с -r. Некоторые ещё лепят -a (архивный режим), чтобы сохранить права, время и прочую мета-инфу. Это уже для тех, кто однажды скопировал конфиги и удивился, почему они внезапно перестали работать.

Синтаксис на миллион одинаковых примеров:

cp -r dir1/ dir2/

Или, если любишь, чтобы всё переехало «как есть»:

cp -a dir1/ dir2/

Классические ляпы

Перезаписал что-то важное без -i.

Всё. Пока. Дальше только утилиты восстановления, молитвы и кофе.

Скопировал в другую файловую систему и потерял права.

Потом удивляешься, почему скрипт не запускается.

Забыл кавычки вокруг имени с пробелами.

Вместо «My Documents» получаешь два отдельных файла «My» и «Documents» в корне.

Заключение

cp в Linux — инструмент, который не прощает лени. Да, можно выучить одну команду и копировать всё подряд, но рано или поздно это выстрелит в ногу. Настоящий опыт — это когда ты пару раз себе что-то перезаписал и теперь пишешь cp -i -v даже для копирования одной картинки.

В общем, запомни: консоль не мама, предупреждать лишний раз не будет.