Linux копирование файлов и папок через консоль

Эта статья посвящена работе с файлами (вводу/выводу) в Python: открытие, чтение, запись, закрытие и другие операции.

Способы разделения PDF

Для нашей сегодняшней цели можно использовать либо специализированное ПО, единственной задачей которого является разбиение документов на части, либо продвинутый редактор файлов PDF. Начнём с программ первого типа.

Способ 1: PDF Splitter

PDF Splitter представляет собой инструмент, предназначенный исключительно для разделения PDF-документов на несколько файлов. Программа совершенно бесплатна, что делает её одним из лучших решений.

Загрузить PDF Splitter с официального сайта

У ПДФ Сплиттер есть и недостатки, и самый явный из них – некачественная локализация на русский язык.

Способ 2: PDF-Xchange Editor

Ещё одна программа, предназначенная для просмотра и редактирования документов. В ней также присутствуют средства разделения PDF на отдельные страницы.

Загрузить PDF-Xchange Editor с официального сайта

  1. Запустите программу и используйте пункт меню «Файл», а затем «Открыть».
  2. В «Проводнике» проследуйте к папке с документом, предназначенным для разбиения, выделите его и нажмите «Открыть» для загрузки в программу.
  3. После загрузки файла воспользуйтесь пунктом меню «Документ» и выберите вариант «Извлечь страницы…».
  4. Откроются настройки извлечения отдельных страниц. Как и в случае с PDF Splitter, доступен выбор отдельных страниц, настройка имени и выходной папки. Используйте опции по необходимости, после чего нажмите «Да» для начала процесса разделения.
  5. По окончании процедуры откроется папка с готовыми документами.

Данная программа работает хорошо, но не слишком быстро: процедура разбиения больших по объёму файлов может затянуться. В качестве альтернативы PDF-Xchange Editor вы можете использовать другие программы из нашего обзора редакторов PDF.

Заключение

Как видим, разделить PDF-документ на несколько отдельных файлов довольно просто. На случай если у вас нет возможности воспользоваться сторонним ПО, к вашим услугам онлайн-сервисы.

Работа с архивами при помощи утилиты TAR. Стандартный архиватор Linux

Стандартная утилита для создания архивов в linux  — «tar». Синтаксис команды такой:

tar опции имя_файла_архива файл_для_архивации

1 tar опции имя_файла_архива файл_для_архивации

Основные опции:

  • c — создание нового архива
  • f — имя файла для архива
  • r — добавление файлов в конец архива
  • x — извлечение файлов из архива
  • t — вывод списка содержимого архива
  • v — вывод сведений о работе программы
  • -C — распаковать в указанную папку

Например. У меня есть папка «Test» и я хочу создать архив tar. Команда tar будет такой:

tar cf Test

1 tar cf Test

В результате получится файл архива «»

Для того, что бы увидеть работу программы можно использовать опцию «v». Будет выведено какие файлы и папки добавлены в архив. Например:

Работа с архивами при помощи утилиты TAR. Стандартный архиватор Linux

tar cvf Test

1 tar cvf Test

В данном случае архив создается с полной структурой папок.

Как в linux архивировать папку по заданному пути

Часто нужно создать архив не заходя в директорию. Давайте рассмотрим пример как создать архив не сохраняя структуру а создать архив только нужной папки из дерева.

Например, у меня есть папка «test» и вложенные «test1/test2». Внутри каждой папки находится по одному файлу. Если использовать команду вида  tar cf test/test1/test2 то будет архив tar со всеми папками и файлами включая и test и test1.

Читайте также:  Выбор дистрибутива Linux для слабого компьютера

Чтобы сделать архив папки по определенному пути нужно использовать опцию —directory=КАТАЛОГ либо -C и в конце через пробел указываем нужную папку для архивации.

Пример использования linux tar  с опцией «directory»:

tar cf —directory=test/test1/ test2

1 tar cf —directory=test/test1/ test2

Теперь пример с опцией «-С»:

tar cf -C test/test1/ test2

1 tar cf -C test/test1/ test2

Как видим результат одинаковый. Так, что используйте тот вариант который покажется более удобным.

Теперь давайте рассмотрим как добавить файл или папку в уже созданный архив.  Для этого нужно использовать опцию «r». Пример. Добавить файл «» в архив «». Используем команду:

tar rf

1 tar rf

Что бы просмотреть содержимое архива tar используйте команду:

tar -tf

1 tar -tf

Будет отображено содержимое архива «Test».

Работа с архивами при помощи утилиты TAR. Стандартный архиватор Linux

Как распаковать tar архив в linux

Теперь давайте рассмотрим как распаковать архив tar. Для этого дайте команду:

tar xf

1 tar xf

Архив будет распакован в текущую папку. Как быть если нужно распаковать не весь архив а извлечь только нужный файл. Допустим я хочу извлечь файл «». Для этого нужно дать команду:

tar xf Test/

1 tar xf Test/

Для того, чтобы извлечь архив в другой каталог используйте атрибут «-C». Например требуется распаковать архив в папку «Driver» находящуюся в директории «Zhelezo». Выполню команду:

tar xf -C Zhelezo/Driver/

1 tar xf -C Zhelezo/Driver/

Думаю с архивированием и разархивированием файлов и папок в линукс без сжатия все понятно.

Работа с текстовыми файлами

Как сравнить два текстовых файла? ответ

diff файл_1 файл_2 или diff -a файл_1 файл_2

Как посчитать количество строк в текстовом файле? ответ

wc -l имя_файла

или awk ‘END {print NR}’ имя_файла

а можно открыть файл в текстовом редакторе vi имя_файла и посмотреть кол-во строк CTRL+G

Как вывести на экран отсортированные строки текстового файла? ответ

sort имя_файла

Как удалить дубли строк из файла? ответ

sort -u имя_файла

или sort имя_файла | uniq

Как дописать содержимое одного текстового файла в конец второго? ответ

cat файл_1 >> файл_2

Как разбить текстовый файл на несколько по 100 строк в каждом? ответ

split -l 100 имя_файла 100-

в результате работы этой команды в директории появятся файлы 100-aa, 100-ab… содержащие по 100 строк из исходного файла. Если исходный файл содержал число строк не кратное 100, то в последнем файле будет меньше ста строк.

Как вывести на экран первые 30 строк файла? ответ

head -n30 имя_файла

Как вывести на экран последние 30 строк файла? ответ

tail -n30 имя_файла

Как посмотреть содержимое текстового файла? ответ

cat имя_файла — вывести файл на экран целиком

more имя_файла — выводить файл на экран постранично (пробел — перейти к следующей странице, enter — на строку вниз)

less имя_файла — выводить файл на экран с возможностью перемещаться по нему вверх и вниз

vi имя_файла или nano имя_файла или emacs имя_файла — открыть файл в любимом текстовом редакторе

Как вывести на экран строки текстового файла /tmp/ начинающиеся со слова ‘START’? ответ

sed -n ‘/%[email protected]~*!G4;:%#`START/ p’ имя_файла

grep ‘%[email protected]~*!G4;:%#`START’ имя_файла

Как вывести на экран содержимое текстового файла без однострочных комментариев (строка комментария начинается с символа #)? ответ

sed -n ‘/%[email protected]~*!G4;:%#`[%[email protected]~*!G4;:%#`#]/ p’ имя_файла

grep -v ‘%[email protected]~*!G4;:%#`#’ имя_файла

Как среди нескольких файлов в директории найти те, которые содержат слово ‘test’? ответ

grep ‘test’ * — поиск во всех файлах в текущей директории

grep ‘test’ файл_1 файл_2 файл_3 — поиск только в указанных файлах

Специальное копирование файлов в Linux с помощью Tar

Как изменить в Linux права на папку — настройка доступа

Читайте также:  chmod — команда изменения прав файлов и папок в linux

Tar на операционных системах семейства Линукс представляет собой специальную утилиту архивации, благодаря которой можно сохранить атрибуты files. Процесс выполнения задачи на основе данной утилиты подробно описан в следующем алгоритме:

  1. Запустить терминал любым удобным способом. Это можно сделать как сочетанием клавиш, так и вручную через «Пуск».
  2. Вбить команду «tar cf — /direct1 | ( cd /direct2/dirext1 && tar xvf — )» и нажать на «Enter». Введя данную команду, пользователь сможет полностью скопировать содержимое одной директории в другую, т. е. переместить папку Linux.
  3. Перезагрузить компьютер, чтобы сохранить изменения.

К сведению! Через программное обеспечение Tar также возможно скопировать ISO-образ с одного USB-накопителя на другой.

Отключение файловой системы

Чтобы отсоединить смонтированную файловую систему, используйте команду umount после которой укажите либо каталог, в котором она была смонтирована (точка монтирования), либо имя устройства:

umount DIRECTORYumount DEVICE_NAME

Если файловая система используется, команда umount не сможет отсоединить файловую систему. В таких ситуациях вы можете использовать команду fuser чтобы узнать, какие процессы обращаются к файловой системе:

fuser -m DIRECTORY

Как только вы определите процессы, вы можете остановить их и размонтировать файловую систему.

Ленивое отключение

Используйте параметр -l ( —lazy ), чтобы отключить занятую файловую систему, как только она больше не будет занята.

umount -l DIRECTORY

Размонтировать принудительно

Используйте параметр -f ( —force ), чтобы принудительно размонтировать. Этот параметр обычно используется для отключения недоступной системы NFS.

umount -f DIRECTORY

Обычно не рекомендуется принудительное отключение, так как это может повредить данные в файловой системе.

Регистр имен

Также стоит отметить чувствительность файловой системы Linux к регистру. Файлы и будут интерпретироваться как разные файлы и могут находиться в одной директории, в отличие от ОС Windows, который не различает регистр имен. То же правило действует и на каталоги — имена в разных регистрах указывают на разные каталоги.

Назначение каждой директории регламентирует «Стандарт иерархии файловой системы» FHS (Filesystem Hierarchy Standard). Ниже опишем основные директории согласно стандарту FHS:

Регистр имен

Стандарт иерархии файловой системы

  • / — root каталог. Содержит в себе всю иерархию системы;
  • /bin — здесь находятся двоичные исполняемые файлы. Основные общие команды, хранящиеся отдельно от других программ в системе (прим.: pwd, ls, cat, ps);
  • /boot — тут расположены файлы, используемые для загрузки системы (образ initrd, ядро vmlinuz);
  • /dev — в данной директории располагаются файлы устройств (драйверов). С помощью этих файлов можно взаимодействовать с устройствами. К примеру, если это жесткий диск, можно подключить его к файловой системе. В файл принтера же можно написать напрямую и отправить задание на печать;
  • /etc — в этой директории находятся файлы конфигураций программ. Эти файлы позволяют настраивать системы, сервисы, скрипты системных демонов;
  • /home — каталог, аналогичный каталогу Users в Windows. Содержит домашние каталоги учетных записей пользователей (кроме root). При создании нового пользователя здесь создается одноименный каталог с аналогичным именем и хранит личные файлы этого пользователя;
  • /lib — содержит системные библиотеки, с которыми работают программы и модули ядра;
  • /lost+found — содержит файлы, восстановленные после сбоя работы системы. Система проведет проверку после сбоя и найденные файлы можно будет посмотреть в данном каталоге;
  • /media — точка монтирования внешних носителей. Например, когда вы вставляете диск в дисковод, он будет автоматически смонтирован в директорию /media/cdrom;
  • /mnt — точка временного монтирования. Файловые системы подключаемых устройств обычно монтируются в этот каталог для временного использования;
  • /opt — тут расположены дополнительные (необязательные) приложения. Такие программы обычно не подчиняются принятой иерархии и хранят свои файлы в одном подкаталоге (бинарные, библиотеки, конфигурации);
  • /proc — содержит файлы, хранящие информацию о запущенных процессах и о состоянии ядра ОС;
  • /root — директория, которая содержит файлы и личные настройки суперпользователя;
  • /run — содержит файлы состояния приложений. Например, PID-файлы или UNIX-сокеты;
  • /sbin — аналогично /bin содержит бинарные файлы. Утилиты нужны для настройки и администрирования системы суперпользователем;
  • /srv — содержит файлы сервисов, предоставляемых сервером (прим. FTP или Apache HTTP);
  • /sys — содержит данные непосредственно о системе. Тут можно узнать информацию о ядре, драйверах и устройствах;
  • /tmp — содержит временные файлы. Данные файлы доступны всем пользователям на чтение и запись. Стоит отметить, что данный каталог очищается при перезагрузке;
  • /usr — содержит пользовательские приложения и утилиты второго уровня, используемые пользователями, а не системой. Содержимое доступно только для чтения (кроме root). Каталог имеет вторичную иерархию и похож на корневой;
  • /var — содержит переменные файлы. Имеет подкаталоги, отвечающие за отдельные переменные. Например, логи будут храниться в /var/log, кэш в /var/cache, очереди заданий в /var/spool/ и так далее.
Читайте также:  Как увеличить скорость модема Мегафон 4G?

Методы файла в Python

() закрывает открытый файл
() возвращает целочисленный дескриптор файла
() очищает внутренний буфер
() возвращает True, если файл привязан к терминалу
() возвращает следующую строку файла
(n) чтение первых n символов файла
() читает одну строчку строки или файла
() читает и возвращает список всех строк в файле
(offset[,whene]) устанавливает текущую позицию в файле
() проверяет, поддерживает ли файл случайный доступ. Возвращает True, если да
() возвращает текущую позицию в файле
(n) уменьшает размер файл. Если n указала, то файл обрезается до n байт, если нет — до текущей позиции
(str) добавляет строку str в файл
(sequence) добавляет последовательность строк в файл

Работа с текстом

  1. Ctrl + A / Ctrl + E

    Клавиши быстрого перехода в начало (А) и конец (E) строки.

  2. Ctrl + Shift + C / Ctrl + Shift + V

    Это сочетание клавиш в Linux позволит быстро скопировать (C) и вставить (V) текст в терминале.

  3. more / less

    Две команды для облегчения просмотра больших текстов, не умещающихся на одном экране эмулятора терминала. Т.к. функционально команды одинаковы, но less — новее и поддерживает больше опций, рекомендуется использовать именно её.

  4. head / tail

    Пара дополняющих друг друга команд для просмотра на одном экране начала и конца текста. Команда head выдаёт 10 (по умолчанию) первых строк текста, tail — последних. Число строк в обоих случаях меняется с помощью аргумента -n. Оператор -f позволяет отслеживать на экране изменения в файле. Чтобы лог (журнал) файла отображался в режиме реального времени, ввести команду:

    tail –nf,

    Для отслеживания логов нескольких файлов применяется модификация команды — multitail.

  5. grep

    (Global Regular Expression and Print). Ищет текст по заданному шаблону. Это очень полезно, когда надо проанализировать работу команды, которая сопровождается большим объёмом текстовой информации. Шаблон может заполняться строкой или регулярным выражением. Пример:

    alias старое_название новое_название

  6. sort

    Сортировка текстовой информации по заданным показателям. Дополнительные переменные позволяют:

  • -n ­— сортировать строки текста по числовому значению;
  • du ­— по размеру;
  • -r ­— применять обратную сортировку;
  • -u ­— удалять дубликаты при сортировке.
  1. wc

    (Word Count). Программа для подсчета заданных параметров в тексте. Считает такие показатели, как символы, слова, строки и байты.

  2. diff

    (Difference). Производит построчное сравнение двух текстовых файлов, выводя различия между ними. Алгоритм работы:

    diff файл_№1 файл_№2

    Различия между двумя версиями файлов отмечают такие символы, как:

  • c — изменённые строки;
  • d — удалённые строки;
  • а —новые строки.