Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая_В1.doc
Скачиваний:
3
Добавлен:
31.01.2023
Размер:
527.87 Кб
Скачать
  1. Фрагменты кода программы

#!/bin/sh

#ifdef __USAGE

#Created by Ilya Grishin

#May 22, 2022

#SYNTAX: sh [path]

#endif

SEARCH_COUNT=100

COUNTER=0

FILE_FORMAT=.txt

REWRITE_FILE=НЕТ

echo 'Раньше какой даты искать файлы?'

read -p 'Введите год: ' y

read -p 'Введите месяц: ' m

read -p 'Введите день: ' d

# Переменные для теста

# y=2022; m=05; d=21;

if test -z $y || test -z $m || test -z $d; then

echo 'Exit error'

exit 1

fi

read -p 'Назовите файл или нажмите <Enter>: ' fileName

if test -z $fileName; then

fileName='FIND'

echo "Задано название FIND$FILE_FORMAT"

fi

if test -f "$PWD/$fileName$FILE_FORMAT"; then

read -p 'Файл существует. Перезаписать? (ДА <Enter> / НЕТ): ' REWRITE_FILE

if test -z $REWRITE_FILE; then

REWRITE_FILE='ДА'

fi

if [[ $REWRITE_FILE == 'ДА' ]]; then

echo > "$PWD/$fileName$FILE_FORMAT"

fi

fi

resultSearch() {

while read -d '' -r dir;

do

COUNTER=$(( $COUNTER + 1 ))

files=("$dir"/*)

echo "$COUNTER. $dir" >> "$PWD/$fileName$FILE_FORMAT"

# Остановить если найдено 100 файлов

if [[ COUNTER -eq SEARCH_COUNT ]]; then

echo "Результаты поиска: найдено $COUNTER файлов." >> "$PWD/$fileName$FILE_FORMAT"

break;

fi

done

if [[ COUNTER -gt 1 ]]; then

echo "Результаты поиска записаны в файл $fileName$FILE_FORMAT"

fi

# Оповестить, если файлов нет

if [[ COUNTER -eq 0 ]]; then

echo 'Файлов нет в директории'

fi

}

find ~/Downloads 2>/dev/null ! -newermt "$y-$m-$d 00:00:00" -print0 | "resultSearch";

  1. Скриншоты выполняемой программы

Рисунок 1. Код вызова сценария из Терминала.

Рисунок 2. Начало выведенного содержимого файла FIND.TXT

Рисунок 3. Конец выведенного содержимого файла FIND.TXT

Заключение

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

Программа имеет USAGE-комментарий, умеет подсчитывать число найденных файлов, а в результате выводит полный путь до файла. Программа закончит свой поиск после 100 найденных файлов. Имя и дата вводятся пользователем с консоли.

Список использованных источников

  1. How to Find Files with Dozens of Criteria with the Bash Find Command // ATA Learning. Режим доступа: https://adamtheautomator.com/bash-find/

  2. Resource – QNX Commands // Real-Time Teaching Labs. Режим доступа: http://users.encs.concordia.ca/home/r/realtime/resource/QNX_Commands.html

  3. Using the Command Line // QNX. Режим доступа: http://www.qnx.net/developers/docs/6.3.0SP3/neutrino/user_guide/cmdline.html

Приложение. Таблица аналогичных команд qnx для mac os.

QNX

команды

Описание

Unix

команды

use

Вывести сообщение

man

pwd

Определить текущую директорию

where

cd

Сменить директорию

cd

cp

Копировать файлы и иерархию файла

cp

ls

Показать содержимое директории

ls

mv

Переименовать или переместить файлы и директории

mv

rm

Удалить или очистить файлы

rm

id

Определить пользователя

who

ssh

Подключиться по SSH

ssh

telnet

Интерфейс протокола Telnet

telnet

which

Определить исходную директорию программы

which

grep

Поиск строковых паттерн

grep

find

Поиск файлов по критериям

find

mkdir

Создать директорию

mkdir

rmdir

Удалить директорию

rmdir

cat

Объединить и показать файлы

cat

vi

Редактор файлов интерфейса VIM

vi

less or more

Постраничное отображение содержимого файла

less or more

chmod

Редактирование доступов файла

chmod

ln

Создание ссылки на файл

ln

tar

Архивирование

tar

kill

Принудительное завершение процесса

kill

ps

Просмотр текущих запущенных процессов

ps

12

Соседние файлы в предмете Проектирование систем реального времени