vadik |
|
Темы:
56
Сообщения:
5451
Участник с: 17 августа 2009
|
vs220Сейчас перенес всю лабуду уровнем выше, чтоб вложеность к скрипту не более 4-х каталогов - все работает. Но хотелось бы чтоб заработало в штатном расположении. Буду пробовать с кавычками. Кстати, если есть спецсимволы, то find эти файлы не удаляет, или не видит. |
vasek |
|
Темы:
47
Сообщения:
11713
Участник с: 17 февраля 2013
|
vadik, вопрос - файлы могут находится как в /home так и / .... или только в /home ???
Ошибки не исчезают с опытом - они просто умнеют
|
vadik |
|
Темы:
56
Сообщения:
5451
Участник с: 17 августа 2009
|
Текс. Заработало. Берет файл со списком рядом со скриптом и ищет начиная со своего каталога. Если вложеность каталогов относительно расположения скрипта не более 4-х - все отрабатывает штатно. find с точкой вместо пути начинает искать с места запуска скрипта и ниже, соответственно предыдущие 100500 каталогов игнорятся в указании пути и проблема с вложеностью обходится.Сейчас поковыряю гугл отностительно вложености, русских букв и спецсимволов в имени. |
vadik |
|
Темы:
56
Сообщения:
5451
Участник с: 17 августа 2009
|
vasek, есть каталог в произвольно месте. Ну не совсем произвольном, но где-то в недрах. В него скидываются различные каталоги с данными для "очистки". Затем "очищенные" каталоги переносятся на свои законные места. Т.е. местоположение скрипта жестко не привязано. Все промежуточные файлы создаются в /tmp, а логи остаются рядом со скриптом. Самих скриптов два. Один только ищет и выводит в лог недостающие и лишние файлы, а второй, тот над которым я сейчас колдую - должен сразу найти и удалить файлы которые разбросаны по "подопытному" каталогу, но не нужны для использования в данном конкретном случае. Вещь узкоспециализированная и редко-применяемая. Поэтому нужно максимально автоматизировать и уменьшить количество ручного вмешательства. К тому же, если вдруг файлы были удалены ошибочно, их несложно восстановить. Кстати, ваш код работает намного быстрее find, но почему-то у меня начал выдавать ошибку sh: 1: Syntax error: "(" unexpected Хотя я пробовал явно указывать полные пути к нужным файлам. |
vadik |
|
Темы:
56
Сообщения:
5451
Участник с: 17 августа 2009
|
В целом вопрос можно считать решенным. Спасибо всем отписавшимся. Вы мне все реально помогли. На сейчас остановился на варианте Проблем с вложеностью каталогов относительно скрипта нет. Файл со списком удаленных файлов сохраняется.Остался вопрос по спецсимволам, но это скорее "на всякий случай", поскольку в используемой системе такие файлы не должны появляться в принципе. [РЕШЕНО] пока не ставлю, вдруг у кого-то еще появятся интересные идеи. |
vasek |
|
Темы:
47
Сообщения:
11713
Участник с: 17 февраля 2013
|
Скрипт с удалением .... в качестве запасного варианта ... Имеем список cat ~/list.txt Смотрим где они находятсяfind -name 'del-*'
Имеем скрипт
Запуск: 1. Проверка без удаления (удалил в скрипте -delete) … получаем в терминале вывод ~/test.sh … все верно …2. Проверка с удалением (вернул на -delete на место) …. после работы скрипта … файлы удалены find -name 'del-*'
PS - vadikЕсли удалаемые файлы находятся только в /tmp , то для ускорения работы скрипта разумнее: вместо строчки cd / прописать cd /tmp .... если будет другое, то для ускорения можно прописать и другое ...
Ошибки не исчезают с опытом - они просто умнеют
|
vadik |
|
Темы:
56
Сообщения:
5451
Участник с: 17 августа 2009
|
vasekЕсли не трудно, имеет ли какие-нибудь преимущества ваш вариант, над вариантом из моего предыдущего сообщения? Для несведущего выбранный мной вариант выглядит просто читабельнее и проще к восприятию. vadikв /tmp я использую промежуточные файлы. По той простой причине, что записать какие-то промежуточные действия в файл, а затем прочитать этот файл, провести манипуляции с данными и записать в другой файл для меня по силам. А всякие полезные потоковые перенаправления и обработка на лету - темный лес. Что и доказывает созданная тема. |
vasek |
|
Темы:
47
Сообщения:
11713
Участник с: 17 февраля 2013
|
vadikВсе дело вкуса, кто к чему привык - каждый выбирает то, что ему понятно и привычно. Особых преимуществ на 1-ый взгяд у них нет. О сравнении можно судит только после отработки (большой список, раскиданость файлов и др.), плюс удобство запуска (системы у всех разные ... и привычки запуска тоже разные), иногда удобно иметь возможность выбора директории удаления и др. PS - если больше нравится одной командой vadikто можно и такой вариант - в котором вместо xargs используется while read ; do Спорно, но не которые считают, что лучше передать список конвейером и обрабатывать имена по одному.... пусть все будет в одном месте ... PS 2 - с удалением по не полному названию нужно быть очень осторожном - в системе всегда имеются файлы с одинаковыми названиями ... и лучше лишний раз перепроверить ...
Ошибки не исчезают с опытом - они просто умнеют
|
vadik |
|
Темы:
56
Сообщения:
5451
Участник с: 17 августа 2009
|
vasek, спасибо. При случае попробую и ваш вариант. Сейчас просто некогда проводить вдумчивые тесты.vasekя оперирую полным именем файла с расширением. Но без путей. С учетом, что вся обработка идет в специально выделенном каталоге - проблем быть не должно в принципе. Ну и не настолько все критично в данном случае. |