В терміналі Linux можна не лише створювати файли та каталоги, а також видаляти їх. Це одна з найбільш простих, але важливих функцій у будь-якій операційній системі. Це знання видалення файлів в терміналі Linux особливо потрібне, якщо входите в систему віддалено через SSH.
Як видалити файл в Linux
Давайте почнемо з простого видалення одного файлу. Синтаксис команди структурований наступним чином.
rm <об’єкт для видалення>
- Створіть новий файл під назвою test1.txt
touch test1.txt
- Перерахуйте вміст каталогу , щоб переконатися, що файл був створений. Тепер ви повинні побачити файл test1.txt.
ls
- Видаліть тестовий файл. Видалення файлу або папки є постійним. Немає кошика, яка могла б врятувати нас від помилкового натискання клавіші.
rm test1.txt
- Повторно перегляньте вміст каталогу, щоб переконатися, що файл видалено. Ви повинні побачити, що test1.txt його більше немає в списку.
ls
Як видалити каталог в Linux
Давайте розглянемо аналогічний приклад, щоб показати, що rm можна використовувати для видалення каталогу, що містить файли. Для цих прикладів ми будемо використовувати два додаткових аргументу -r і -i.
- Створіть порожній каталог. У вашому домашньому каталозі створіть порожній каталог.
mkdir test_directory
- Переміститеся в новий каталог.
cd test_directory
- Створіть два тестових файлу в каталозі
touch test1.txt test2.txt
- Перерахуйте вміст каталогу , щоб перевірити, чи створені файли. Ви повинні побачити файли, які test1.txt і test2.txt тепер перераховані.
ls
- Поверніться в домашній каталог
cd ~
- Видалити каталог. Щоб видалити цей каталог, нам потрібно використовувати аргумент -r . Аргумент -r діє рекурсивно для входу в каталог, перевірки і видалення будь-яких файлів всередині. Після того, як він спорожніє, команда повертається для видалення каталогу, який вона тільки що очистила.
rm -r test_directory
- Перевірте, вилучений чи каталог. Ви повинні побачити, що test_directory видалений зі списку.
ls
- Повторіть описані вище кроки з 1 по 5, щоб створити тестовий каталог і файли.
- Повторіть аргумент -r , але додайте аргумент -i для інтерактивного видалення файлів і каталогів. Може бути важко уявити, що робить аргумент -r . Аргумент -i змушує процес видалення запитувати підтвердження (інтерактивне) кожного видалення.Введіть “y” і натисніть enter для підтвердження кожного кроку.
rm -ri test_directory
Як в Linux видалити файл, захищений від запису
Іноді вам може знадобитися видалити файли в Linux, захищені від запису. Якщо ви використовуєте стандартну команду rm , вам буде запропоновано підтвердити, чи ви хочете видалити кожен захищений файл. Для цього ми можемо використовувати аргумент сили -f , щоб допомогти. По суті, це змушує команду rm примусово видаляти будь-які каталоги і файли, тому вам потрібно бути особливо обережним при використанні цих команд, оскільки вона не буде запитувати ніякого підтвердження.
- Створіть тестовий файл під назвою test1.txt
touch test1.txt
- Змініть права доступу до файлу, щоб видалити файл могли тільки користувач та група, до якої він належить.
chmod u-w test1.txt
chmod g-w test1.txt
- Спробуйте видалити файл, використовуючи стандартну команду rm . При використанні стандартної команди rm вам повинно бути запропоновано підтвердити, чи ви хочете видалити test1.txt файл. Натисніть кнопку n , щоб на цей раз відповісти “ні”. Якщо б у вас був каталог з сотнями захищених файлів, вам довелося б підтверджувати кожен з них за допомогою y , що було б неймовірною тратою часу.
rm test1.txt
- Видаліть файл, використовуючи аргумент -f . Виконання цієї команди з аргументом -f змушує команду видалити файл і не вимагає підтвердження. Використовуйте з обережністю!
rm -f test1.txt
Ці команди неймовірно потужні, прості у використанні і можуть зробити виконання завдань по видаленню дійсно простим. Можливо, ви бачили в Інтернеті жарти про надзвичайно небезпечних версіях цієї команди, таких як sudo rm -rf / , і, можливо, з цієї статті ви дізнаєтеся, чому це може бути небезпечно.
Ви можете помітити, що ми надаємо команді права root і використовуємо примусові і рекурсивні аргументи, по суті, відправляючи команду для видалення всіх файлів в системі!