секрети терміналу

Ми повертаємося до нашого циклу статей про Терміналі Mac OS X, де викладаються премудрості роботи на Маке через командний рядок. Сьогодні ми підходимо до найважливішого уроку - операції над файлами і папками. Ми розглянемо команди для копіювання, переміщення, перейменування і видалення об'єктів - cp, mv, rm. Не дивуйтеся, що для чотирьох названих дій призначені три команди. Як ви дізнаєтеся з подальшої оповіді, одна з них вміє набагато більше, ніж здається спочатку.

Отже, почнемо з копіювання і команди cp.

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

cp - (параметри) (що копіюємо) (куди копіюємо)

Найголовніше в цій команді - саме параметри. Наприклад, без додаткових параметрів ви не зможете навіть скопіювати папку - за замовчуванням команда cp працює тільки для окремих файлів.

Цей параметр потрібен, якщо ви копіюєте папку. Зверніть увагу на дуже важливий нюанс: від того, як ви напишете шлях до папки, залежить те, як вона скопіюється. Візьмемо простий приклад: відкрийте Термінал і введіть команду:

Ви отримаєте помилку про те, що Sites - це директорія, і вона не може бути скопійована.

Тепер спробуйте трохи інший варіант:

Папка з сайтами скопіюється на Робочий стіл. Спробуйте третій варіант:

Ви побачите, що на Робочий стіл Скопіювати Не сама папка сайтів, а тільки її вміст.

Запам'ятайте це правило - слеш в кінці шляху копируемой папки не копіює її саму.

Це небезпечний параметр. Він означає, при збігу імен копійованого файлу з уже наявними в папці, куди він копіюється, цей файл буде стертий без жодних попереджень і повідомлень.

Це параметр для тих, хто схильний острожнічать. При першому ж збігу імен ви побачите ось таке питання:

секрети терміналу
Від того, що ви натиснете на клавіатурі (y або n), буде залежати доля файлу в папці призначення. Кількість таких питань буде дорівнює кількості об'єктів з однаковими іменами.

Даний параметр накаже Терміналу при копіюванні зберігати атрибути вихідного файлу: його власника, права доступу, групу, час зміни і відкриття. Завжди ставте цей параметр, якщо ви копіюєте системні файли. В іншому випадку їх права будуть безнадійно зіпсовані, і вас можуть чекати серйозні помилки в системі.

В цьому випадку Термінал покаже вам все скопійовані файли у форматі «що копіювалося» -> «куди скопіювати»:

Як завжди, параметри можна поєднувати. І для вашої зручності параметр -R цілком дозволено писати малими літерами.

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

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

(Еквівалент cp -dpR) - в цьому випадку команда не буде обробляти символічні посилання, рекурсивно обробляє всі підкаталоги і зберігає нові атрибути файли, на зразок імені власника. Дуже зручна в тому плані, що всякого роду «ярлики» та інші речі, які інформаційної цінності не несуть, будуть просто проброшени даною командою.

Дана команда має подвійне призначення - вона вміє переміщати і перейменовувати об'єкти. Дуже багато що тут залежить від синтаксису. Загальний принцип роботи у команди mv схожий з cp:

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

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

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

І третя ситуація - просто переміщення (без перейменування):

Тепер про параметри команди 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 без параметра -i. Хоч це і нудно, зате убезпечить вас від багатьох фатальних помилок.

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

Матеріали в тему

секрети терміналу

Схожі статті