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