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

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

Как выполнить удаление файлов при помощи команды rf. Эту тему должен знать каждый пользователь 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
просмотры: 797, уровень: лёгкий уровень, рейтинг: 0, дата: 2017-05-25 13:53:16
проголосовать:

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






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