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

Как рекурсивно удалить файлы папки 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
просмотры: 2450, уровень: лёгкий уровень, рейтинг: 5, дата: 2017-05-25 13:53:16
проголосовать:

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

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





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