Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Найти папки с заданным именем, удалить старые файлы и пустые папки

добрый день
помогите написать маленький скриптик
1. найти папки с именем "папка обмена" в /volume1/public
2. в найденных папках и их подпапках найти файлы старше 5 дней и удалить их
3. найти пустые подпапки в папках "папка обмена" и удалить их

спасибо
Ответ: Когда человек хоть что-то делает с ним уже можно "разговаривать на одном языке". А по поводу man — плохо искали
Bash
1
find /tmp/test/ -path '*/папка обмена/*' \( \( -type d -empty \) -o \( -type f -mtime +5 \) \) -delete
Вопрос: Debian&Apache2 Непонятки с правами на файлы

Есть сайт на php, поднимался на Debian etch. Решил переустановить систему, поставил свежий Debian wheezy ( 8.0 ), установил Apache2 (2.4.12-2), libapache2-mod-php5 (5.6.7+dfsg-1) и тут появились непонятные глюки, в админке сайта в меню аплоада не отображаются загруженные файлы.
Проблема вроде ясна, ковыряй права на структуру сайта, но есть один единственный " НО " :

1. Делаю chmod -R 777 ./* не отображаются файлы в админке
2. Ставлю права массовым выделением в midnight commander - появляется последний выделенный файл
3. Делаю снова chmod -R 777 ./* файлы исчезают из списка
4. Делаю chmod указывая конкретные файлы - файлы появляются
5. в коммандере открываю права на файл и ничего не изменяя выхожу - файл на который смотрелись права появился в списке., а сделаю опять chmod на все файлы, они снова исчезнут.

Можно было бы грешить на apache, на php или php модуль для апача, но никак не улавливаю связи с простым просмотром прав через коммандер, как только зайду в редактирование прав, при этом повторюсь ничего не меняя, то файл появляется.

Кто нибудь сталкивался с чем нибудь подобным?
Ответ: Есть сайт на php, поднимался на Debian etch. Решил переустановить систему, поставил свежий Debian wheezy ( 8.0 ), установил Apache2 (2.4.12-2), libapache2-mod-php5 (5.6.7+dfsg-1) и тут появились непонятные глюки, в админке сайта в меню аплоада не отображаются загруженные файлы.
Проблема вроде ясна, ковыряй права на структуру сайта, но есть один единственный " НО " :

1. Делаю chmod -R 777 ./* не отображаются файлы в админке
2. Ставлю права массовым выделением в midnight commander - появляется последний выделенный файл
3. Делаю снова chmod -R 777 ./* файлы исчезают из списка
4. Делаю chmod указывая конкретные файлы - файлы появляются
5. в коммандере открываю права на файл и ничего не изменяя выхожу - файл на который смотрелись права появился в списке., а сделаю опять chmod на все файлы, они снова исчезнут.

Можно было бы грешить на apache, на php или php модуль для апача, но никак не улавливаю связи с простым просмотром прав через коммандер, как только зайду в редактирование прав, при этом повторюсь ничего не меняя, то файл появляется.

Кто нибудь сталкивался с чем нибудь подобным?
Вопрос: Выполнить в диалоге поиск файла

Всем Здравствуйте. Подскажите пожалуйста как правильно выполнить это задание.

Выполнить в диалоге настройку поиска файла: запросить и ввести шаблон имени,
начальный каталог поиска, тип файла, число дней либо после изменения файла, либо
после обращения к нему (по выбору пользователя). Выполнить поиск и вывести имена
найденных файлов (без пути к файлу) в одной строке через запятую.

Вот код который я написал но она не работает.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
echo "Введите имя файла"
if if [ -z $1 ]; then
  echo "Вы не указали обрабатываемый файл."
   exit 0
fi
echo "Введите Каталог"
if if [ -z $2 ]; then
  echo "Вы не указали Каталог."
   exit 0
   fi
   echo "Введите тип файла"
if if [ -z $3 ]; then
  echo "Вы не указали тип файла."
   exit 0
   fi
   echo "Введите сколько времени прошёл с изменения данного файла в днях"
if if [ -z $4 ]; then
  echo "Вы не указали сколько времени прошёл с изменения данного файла в днях"
   exit 0
   fi
   
   
FileName=$1;
Catalog = $2;
TypeFile=$3;
for file in `find $Catalog ( -name $FileName -o -name $TypeFile ) ~ -mtime $4 -daystart`
do
echo $file
done
Ответ: В целом так, только
Сообщение от Marinero
Тип файла не тестируется через -name
Вопрос: С использованием find найти файлы больше заданного размера

Разработать скрипт для поиска файлов:
1. запрашивать тип действия (поиск по имени или поиск по размеру)
2. запрашивать каталог в котором нужно произвести поиск
3. заправшивать имя файла или размер ( взависимости от действия)
4. вы все файлы з заданым именем или все файлы больше зазначеного размера

И для выполнения использовать функцию find.
Очень нужна помощь в написании скрипта
Ответ: Если вы на вопрос программы:
"Определите поиск по имени[n] или размеру[s]: "
Нажмете любую клавишу кроме n или s то будет.
Значение конструкции вы сможете узнать если наберете в терминале
Bash
1
info bash --index-search="Parameter Expansion"
Все очень хорошо описано
Вопрос: Найти файлы содержащие определенные строки, удалить дубли строк

Добрый день, господа Линуксоиды прошу помощи с написанием shell скрипта
______________________________________

Написать shell-процедуру,которая:

в заданном первым параметром каталоге находит все простые файлы, в которых

содержатся заданные вторым или третьим параметрами символьные строки;

в найденных файлах удаляет все повторяющиеся более 2-храз строки; выводит на экран

имена всех полученных файлов.

______________________________________
PS можно псведкод, линк на статью в гугле идей нет вообще как это сделать
Ответ:
Сообщение от woodcutter23
Написать shell-процедуру,которая:
в заданном первым параметром каталоге находит все простые файлы, в которых
содержатся заданные вторым или третьим параметрами символьные строки;
я бы понял так:

Написать shell-процедуру,которая:
в заданном первым параметром каталоге находит все простые файлы, в которых
содержатся символьные строки, заданные вторым и возможными последующими параметрами;

finder { start-folder } {string} [string] [string] ...
Вопрос: Права доступа на директории при чтении, изменении и удалении файлов

Всем привет , помогите разобраться с правами доступа.
У нас есть 5 директорий и 5 файлов , нужно удалить 3 и 5 директоии вместе с файлами , файл из второй директории записать в конец файла из первой , а первую первую директорию объединить с четвертой .



насколько я понимаю для всех подходит rwx, но нужно написать минимальные а знаний на это не хватает(
Ответ: Вам следует помнить, что директории — это суть файлы, со списком содержимого. При перемещении файла из одной директории в другую физического перемещения данных файла не происходит — только изменяются два списка: дир_источник и дир_получатель.
Т.е для того чтобы «файл из второй директории записать в конец файла из первой» необходимо для 1дир иметь права на запись, обеим права на вход, 2файл право на чтение, 1файл право на запись.
Вопрос: Удаление файлов, которые старше 3х дней

Здравствуйте. Помогите пожалуйста.
Нужно 2 скрипта для крона deb7:
1) удаление файлов,которые старше 3х дней.
2) помещение в архив (rar,zip, или какой либо другой формат,лишь бы процесс не сильно нагружал железо) файлов с расширением *.dem , далее удаление оригинальных файлов *.dem, которые были помещены в архив (напр. файл test.dem поместили в архив test.zip, а сам файл test.dem удалить). но так же нужно чтобы скрипт не архивировал еще не до конца записанный файл *.dem (либо добавить проверку на чтение файла другими процессами,либо не архивировать последний записанный dem файл.)

кто нибудь может помочь с данными скриптами?
Заранее спасибо.
Ответ: 1.
Код Bash
1
find . -type f -mtime +3 -delete
2.
Код Bash
1
zip -1 *.dem -x $(fuser *.dem 2>&1|cut -d: -f1)
Вопрос: Написать скрипт поиска файлов в подпапках разными подпроцессами

Всем привет. Помогите, пожалуйста, с решением задачи, ибо надо срочно сделать, а я в bash не осень разбираюсь
Задача такая:
Для заданного каталога (аргумент 1 командной строки) и всех его подкаталогов вывести в заданный файл (аргумент 2 командной строки) и на консоль имена файлов, их размер и дату создания, удовлетворяющих заданным условиям: 1 – размер файла находится в заданных пределах от N1 до N2 (N1,N2 задаются в аргументах командной строки), 2 – дата создания находится в заданных пределах от M1 до M2 (M1,M2 задаются в аргументах командной строки). Процедура поиска для каждого подкаталога должна запускаться в отдельном процессе. Каждый процесс выводит на экран свой pid, полный путь, имя, размер просмотренного файла, общее число просмотренных файлов в подкаталоге (все в одной строке). Число запущенных процессов в любой момент времени не должно превышать N (вводится пользователем). Проверить работу программы для каталога /usr/ размер 31000 31500 дата с 01.01.1970 по текущую дату N=6.
Ответ:
Сообщение от Sentrex
прокомментировать код
Там одна команда
Bash
1
man find
Вопрос: Резервное копирование файлов, заданных аргументами

Имеется такое задание:

Написать командную процедуру, которая создает каталог для резервного копирования файлов.
Имена каталога и файлов указываются в виде аргументов.
Я третий день изучаю bash и набросал очень примитивный код:

Код Bash
1
2
3
4
#!/bin/bash
mkdir $1 && 
cd $1 && 
tar -czf $1-`date +%F--%H-%M`.tar.gz $2

Далее я его отладил, все работает, но потом подумал, что если задать несколько файлов подряд, то заархивируется только 1.

Сейчас держу в уме такой алгоритм: принимать три и более аргументов, где первый аргумент -- каталог, куда архивируем, второй аргумент -- сколько файлов архивируем, третий и последующие аргументы -- файлы, которые архивируем. Далее цикл от 1 до
Код Bash
1
$2
, где в теле архивируются все файлы, заданные аргументами $3 и далее.

Но мне кажется, что этот способ не рационален...

Может, можно как-то проще это реализовать?

Что-нибудь посоветуете?
Ответ: При минимальных изменениях что-то такое
Код Bash
1
2
3
4
5
#!/bin/bash
[ -d "$1" ] || mkdir "$1" || exit 1
d="$1"
shift 1
tar -czf "$d/arc-`date +%F--%H-%M`.tar.gz" $@
Вопрос: Дописать в файл отчета содержимое домашнего каталога пользователя

2.1.Создание текстовых файлов:

2.1.1.Создать в каталоге lab04 (расположен в домашнем каталоге пользователя

testuser) текстовый файл (файл отчета) и вписать в него свою фамилию, имя, отчество,

курс, группу.

2.1.2.Дописать в файл отчета содержимое домашнего каталога пользователя

testuser.

Меня интересует 2.1.2. Как правильно это сделать.

Добавлено через 3 минуты
2.3.Использование head и tail:

Дописать в файл отчета 3 и 4 строки файла onetext.txt, расположенного в

каталоге lab04
Ответ: Я думал домашний каталог это - /home