Страница 1 из 1
Не могу удалить все файлы из папки
Добавлено: 2009-06-22 17:00:53
mazay
в общем передаю путь к папке и пытаюсь удалить ее содержимое, однако получаю сообщение
Код: Выделить всё
rm -v /mnt/hda1/333/*
rm: Невозможно удалить `/mnt/hda1/333/*' No such file or directory
Папка однозначно есть и получившаяся команда rm -v /mnt/hda1/333* выполняется
Чего я не дочитал и не досмотрел? И как сделать правильно?
Re: Не могу удалить все файлы из папки
Добавлено: 2009-06-22 17:19:47
zg
mazay писал(а):echo "/mnt/hda1/333/*" | xargs -p rm -v
кавычки нада убрать

Re: Не могу удалить все файлы из папки
Добавлено: 2009-06-23 9:43:17
mazay
кавычки нада убрать
точно. СПАСИБО.
Это я вопрос не совсем корректно задал. Пишу скрипт со следующим алгоритмом
1 Строю дерево папок
2 Исключаю из этого дерева нужные папки
3 форматирую вывод
4 из оставшихся папок удаляю файлы
Вот примерный код
Код: Выделить всё
ls -RF 333/ | grep : | egrep -v -f exclude | sed -e '1d' -e '/\:/\/\*/' | xargs -t rm -v
выдает тоже, что и приведенный выше мной пример.
Как тут кавычки убрать?

Re: Не могу удалить все файлы из папки
Добавлено: 2009-06-23 10:57:38
zg
mazay писал(а):Как тут кавычки убрать?
а что сделать то нужно? то есть с какой целью идут операции?
Re: Не могу удалить все файлы из папки
Добавлено: 2009-06-23 12:58:05
mazay
Вообще нужно удалить из дерева папок все папки кроме указанных в файле exclude для очистки места.
На shell пишу первый раз, потому избрал наверно путь через задницу. Наверняка есть альтернатива и гораздо проще, но я ее не нашел
Сформатировал необходимый вывод папок с помощью ls -R, отсортировал его в обратном порядке командой sort, чтобы папки самого нижнего уровня выводились первыми, ну и теперь хочу командами rm -f удалять содержимое этих папок, а затем удалять сами папки командой rmdir, пользуясь тем, что эта команда не удаляет непустые каталоги. Делать сразу rm -rf при таком раскладе нельзя, поскольку удалятся все папки до корня
Как делается проще не знаю и победить xargs тоже не получается.
Re: Не могу удалить все файлы из папки
Добавлено: 2009-06-23 17:17:33
zg
mazay писал(а):Делать сразу rm -rf при таком раскладе нельзя, поскольку удалятся все папки до корня
тут всё намного проще:
1. создаёшь список папок на удаление
2. устраняешь из спсика ценные папки
3. через rm -rf удаляешь каждую папку из списка
Re: Не могу удалить все файлы из папки
Добавлено: 2009-06-24 13:24:15
mazay
Спасибо надо попробовать. В общем решил так, как я и описал. Итогового срипта под рукой нет, но получилось примерно так
Код: Выделить всё
find 333/ | egrep -v -f [тут имя файла исключений] | xargs rm -f
Правда в дистрибутиве, в котором я работал (Linux Puppy 301) оказалось какое-то ограничение при передаче аргументов команде xargs. Весь список не принимался с ошибкой argument is too long или как-то так. А во FreeBSD все работает как и задумано.