Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Эта работа посвящена изучению приемов формирования и преобразования файлов в ОС UBUNTU.
Изучаются команды:
cat, cp - копирование файлов;
mv - перемещение и переименование файлов;
ln - организация ссылок на файл;
sort - сортировка файлов;
wc - определение числовых параметров файла;
touch - обновление временных характеристик файла.
Для подсчета строк, слов, или символов в файле:
wc <ключ> <путь к файлу>
С командой используются следующие ключи:
-l — для подсчета числа строк;
-w — для подсчета числа слов;
-c — для подсчета числа символов.
Для вывода содержимого файла на экран:
cat <список путей к файлам>
Если cat указано в списке более одного пути, то содержимое указанных файлов будет выведено последовательно. Таким образом, команду cat можно использовать для соединения нескольких файлов в один.
Для того чтобы записать результат соединения в целевой файл, следует воспользоваться приемом перенаправления вывода. Для указания целевого файла следует добавить в строку, запускающую команду на выполнение следующую конструкцию:
> <путь к файлу результату>
Например, для вывода сообщения «Не11о, world!» в файл bloknot.txt, можно воспользоваться следующей командой:
Если требуется произвести запись в конец уже существующий файл с сохранением уже записанной туда информации, используется следующая конструкция:
Например:
Подобным образом, можно осуществлять перенаправление не только вывода, но и ввода. В этом случае, если программа ожидает ввода пользователя, вместо него будет подставлено содержимое указанного файла.
< <путь к файлу-источнику>
В качестве примера, рассмотрим запуск команды cat без указания файла. В этом случае, программа будет ожидать от пользователя ввода данных, и выводит их.
^Z
Теперь, применим прием перенаправления ввода, указав cat, что ввод требуется осуществить из только что полученного файла.
В случае, когда необходимо передать результаты, выводимые одной командой на вход другой команде можно воспользоваться конвейером. Конвейер строится при помощи символа ‘|’, которым разделяются команды. Например, следующую последовательность команд:
Можно заменить таким конвейером:
(функция wc –w считает количество введённых слов, разделённых пробелами)
Для постраничного просмотра файлов используется функция more:
Используйте клавишу Enter для перехода к следующей строке просматриваемого файла, клавишу пробела для перехода к следующей странице просматриваемого файла. Для выхода нажмите клавишу q.
Часто команда тоге используется для постраничного просмотра результата работы другой команды, для чего она объединяется с этой программой в конвейер. Например:
Для соединения файла, после разделения командой cut
Для сортировки содержимого файла:
Результат сортировки не записывается в исходные файлы, а выводится на экран. Команда имеет следующие ключи:
-r — производить сортировку по убыванию, вместо сортировки по возрастанию;
-n — рассматривать содержимое файлов как числа, и производить для сортировки числовое сравнение, а не лексикографическое. Для создания нового пустого файла:
touch <список путей к файлам>
Если файл уже существует, то у него будет изменено время последнего обращения.
Для копирования файла:
cp <путь к исходному файлу> <путь к файлу назначения>
cp <список путей к исходным файлам> <путь к каталогу назначения>
ср -r <список путей к исходным файлам и/или каталогам> <путь к каталогу назначения>
Пример работы с файлами
Попробуйте объяснить смысл каждый строки из данного примера. Какие операции запрашивает пользователь, и какие ответы даёт система?
Заметим, что для указания всех файлов в текущем каталоге в качестве списка путей в исходном файле, можно использовать специальный символ *, известный как wildcard. При этом команде ср символ * передан не будет. При обработке строки с командой и ее параметрами программа оболочка заменит его списком имен всех файлов, найденных в текущем каталоге. Вообще, кроме символа *, при задании шаблона для генерации списка файлов, могут использоваться также символы?, [ и ]. При этом они имеют следующее значение:
* — любая последовательность символов. Например, шаблон /home/*а* будет заменен списком всех файлов и каталогов в каталоге /home, содержащих символ а;
? — любой одиночный символ. Например, шаблон /usr/??? будет заменен списком имен всех файлов и каталогов в каталоге /usr, имеющих длину 3;
[ ] — любой из символов, заданных в скобках. Например, шаблон /lib/*[.0-9]* будет заменен списком имен всех файлов и каталогов в каталоге /lib, имеющих в имени символ точки, или цифру;
[^] — любой из символов, кроме символов, заданных в скобках. Например, шаблон /lib/ [^aeiou] * будет заменен списком имен всех файлов и каталогов в каталоге /bin, не начинающихся на гласную букву.
Так как обработка шаблонов генерации списков производится программой-оболочкой, использовать шаблоны для передачи списков файлов в качестве параметров любым программам, в том числе и не предназначенным для работы с файлами.
Следующий пример выведет список всех файлов и каталогов в корневом каталоге:
В случае если список, сгенерированный по шаблону оказывается пустым, то есть файлов, имена которых удовлетворяют критерию не обнаружено, шаблон передается программе, обрабатывающей команду в неизменном виде со всеми специальными символами. Вот, например, результат выполнения команды в пустом каталоге:
echo *
*
Для перемещения файла:
mv <путь к файлу> <новый путь для файла>
пример:
Отметим, что команда перемещения файла может также быть использована для его переименования.
Для удаления файла:
rm <список путей к файлам>
rm -r <список путей к файлам и/или каталогам>
Для поиска файлов, удовлетворяющих критерию:
find <список путей для начала поиска> [опции] <список критериев поиска>
В случае отсутствия критериев поиска, результатом команды будут все файлы, расположенные во всех подкаталогах всех указанных для поиска каталогов. Причем, командой find наличие, или отсутствие у файла в начале имени точки не учитывается, то есть в списки файлов попадут все файлы, включая скрытые. Перечислим некоторые критерии поиска:
-name <шаблон> — файл будет включен в результат только, если его имя (без учета пути к файлу) соответствует шаблону программы-оболочки, переданному а качестве параметра критерию;
-type <тип> — файл будет включен в результат только, если его тип соответствует указанному в критерии; среди всех возможных типов выделим следующие: d — для каталога, f— для файла.
В случае если требуется ограничить глубину поиска, следует воспользоваться опцией -maxdepth, которой в качестве параметра передается максимальная глубина спуска в подкаталоги. Например, чтобы производить поиск только среди файлов текущего каталога, имена которых начинаются не на точку, можно использовать такую команду:
find. –maxdepth l –name “[^.]*”
Заметим, что в предыдущем примере, шаблон генерации списка был заключен в кавычки, чтобы подавить генерацию списка программой-оболочкой при разборе параметров.
Для получения информации о размере файлов или каталогов:
du <список путей к файлам или каталогам>
Для каждого файла из списка параметров программа печатает его размер, а для содержащихся в списке параметров каталогов, и всех каталогов, содержащихся в них — суммарный объем хранящихся в них файлов.
Дата публикования: 2014-11-04; Прочитано: 505 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!