В 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 даже для копирования одной картинки.
В общем, запомни: консоль не мама, предупреждать лишний раз не будет.
0 комментариев