голосование
BASH
PHP
Javascript
HTML
Программы
Firebird
Майнинг
PostgreSQL
Хостинг
Железо
Ресурсы
GIT
SEO
Oracle
Python
Мобильные технологии
Ремонт
Mercurial
Заработок на сайте
Docker
Проголосуйте за категорию!
счётчик
Яндекс.Метрика

Как рекурсивно удалить файлы папки rm BASH

Как выполнить удаление файлов при помощи команды rm. Эту тему должен знать каждый пользователь linux. Тут ошибаться нельзя. Удалённые файлы не перемещаются в корзину как в виндовс. Удаление происходит навсегда. Если у вас организовано копирование файлов, то можете поэкспериментировать. Советую для начала сделать тестовую папку. Затем создать в ней много пустых файлов touch file{1..100}.txt. Потом попробуйте удалить один файл и несколько файлов.


# файл не запускать!!! Удалит все файлы
exit 1

# рекурсивное удаление папок с файлами и подкаталогами
rm -r folder1

# будет удалено всё кроме самой директории, нужно пробраться в саму папку и там выполнить удаление
rm -r * 

# удаление без подтверждения. Использовать осторожно
rm -rf

# показывает текст с действием: удалён "file1"
rm -v file1

# никогда не использовать! Удалит всю файловую систему
rm -rf /*

# запрашивает подтверждение
rm -i file1

# Правильный способ удаления файлов, в чьих именах содержатся пробелы.
rm *\ *
rm *" "*
rm *' '*

Посмотрите на скрипт для удаления файлов в определённой папке. Он простой. В нем имеется проверка каталога. Если вы обратились не к каталогу, то скрипт остановится в выведет предупреждение. Такая проверка необходима! Запустите файл ./dell_files.sh ./dell_folder. Вы должны передать скрипту параметр ./dell_folder (папка с файлами). У вас будет свой передаваемый параметр args. Подробно о передаваемых параметрах написано в статье как вывести циклом список аргументов переданных скрипту sh args BASH.


#!/bin/bash
#Егор Астапов 2017-05-25
# dell_files.sh - скрипт для удаления файлов в папке
BADDIR=65

#$1 - передаваемый параметр

# удаляет все файлы в папке
#rm -f $1/*

# Проверка существования заданного каталога.
if [ ! -d "$1" ]
then
  echo "$1 -- не является каталогом."
  exit $BADDIR
else
  #подсчёт файлов перед удалением
  echo "количество файлов в папке: `ls -1 $1 | wc -l`"

  echo "$1 - выполняется удаление."
  rm -f $1/*
  echo "количество файлов в папке: `ls -1 $1 | wc -l`"
fi

#вывод:
#количество файлов в папке: 10
#./dell_files - выполняется удаление.
#количество файлов в папке: 0
просмотры: 3907, уровень: лёгкий уровень, рейтинг: 3, дата: 2017-05-25 13:53:16
проголосовать:

Комментарии:

добавил(а): Сергей
дата: 2018-04-02 11:14:38
Опечатка "Как выполнить удаление файлов при помощи команды *****rf****"
добавил(а): Егор Астапов
дата: 2018-04-02 12:29:07
Спасибо Сергей! Исправил ошибку.





поиск
реклама
банеры
Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/well_web_vps_kvm Аренда VPS KVM в Европе Мы предлагаем в аренду VPS серверы с выделенным IP-адресом, которые полностью эмулируют физический сервер.
http://trainingweb.ru/redirect/pingadmin мониторинг сайтов сервис мониторинга работы сайта, мониторим HTTP, HTTPS, FTP, MYSQL, PostgreSQL, POP3, SMTP, IMAP
http://trainingweb.ru/redirect/domains домен RU домен RU всего за 99 рублей