Как перемещать файлы и каталоги в Linux (команда mv)
Перемещение файлов и каталогов — одна из самых основных задач, которые вам часто приходится выполнять в системе Linux.
В этом руководстве мы объясним, как использовать команду mv для перемещения файлов и каталогов.
Как использовать команду mv
Команда mv (сокращение от move) используется для переименования и перемещения файлов и каталогов из одного места в другое. Синтаксис команды mv следующий:
SOURCE может быть одним или несколькими файлами или каталогами, а DESTINATION может быть одним файлом или каталогом.
- Когда в качестве SOURCE задано несколько файлов или каталогов, DESTINATION должен быть каталогом. В этом случае файлы SOURCE перемещаются в целевой каталог.
- Если вы укажете один файл как SOURCE , а целью DESTINATION является существующий каталог, то файл будет перемещен в указанный каталог.
- Если вы укажете один файл в качестве SOURCE и один файл в качестве цели DESTINATION вы переименуете файл .
- Если SOURCE является каталогом, а DESTINATION не существует, SOURCE будет переименован в DESTINATION . В противном случае, если DESTINATION существует, он будет перемещен в каталог DESTINATION .
Чтобы переместить файл или каталог, вам необходимо иметь права на запись как в SOURCE и в DESTINATION . В противном случае вы получите сообщение об ошибке в разрешении отказано.
Например, чтобы переместить файл file1 из текущего рабочего каталога в каталог /tmp вы должны запустить:
Чтобы переименовать файл, вам необходимо указать имя файла назначения:
Синтаксис перемещения каталогов такой же, как и при перемещении файлов. В следующем примере, если каталог dir2 существует, команда переместит dir1 внутрь dir2 . Если dir2 не существует, dir1 будет переименован в dir2 :
Перемещение нескольких файлов и каталогов
Чтобы переместить несколько файлов и каталогов, укажите файлы, которые вы хотите переместить, в качестве источника. Например, чтобы переместить файлы file1 и file2 в каталог dir1 , введите:
Команда mv также позволяет использовать сопоставление с образцом. Например, чтобы переместить все файлы pdf из текущего каталога в каталог
/Documents , вы должны использовать:
Параметры команды mv
Команда mv принимает несколько параметров, которые влияют на поведение команды по умолчанию.
В некоторых дистрибутивах Linux mv может быть псевдонимом команды mv с настраиваемым набором параметров. Например, в CentOS mv — это псевдоним mv -i . Вы можете узнать, является ли mv псевдонимом, используя команду type :
Если mv является псевдонимом, вывод будет выглядеть примерно так:
Если указаны конфликтующие варианты, последний имеет приоритет.
Запрашивать перед перезаписью
По умолчанию, если целевой файл существует, он будет перезаписан. Чтобы запросить подтверждение, используйте параметр -i :
Чтобы перезаписать файл типа y или Y
Принудительная перезапись
Если вы попытаетесь перезаписать файл, доступный только для чтения, команда mv спросит вас, хотите ли вы перезаписать файл:
Чтобы не получать подсказки, используйте параметры -f :
Эта опция особенно полезна, когда вам нужно перезаписать несколько файлов, доступных только для чтения.
Не перезаписывать существующие файлы
Параметр -n указывает mv никогда не перезаписывать существующие файлы:
Если существует file1 приведенная выше команда ничего не сделает. В противном случае он переместит файл в каталог /tmp .
Резервное копирование файлов
Если целевой файл существует, вы можете создать его резервную копию, используя параметр -b :
Файл резервной копии будет иметь то же имя, что и исходный файл, с добавленной к нему тильдой (
Используйте команду ls, чтобы убедиться, что резервная копия была создана:
Подробный вывод
Другой вариант, который может быть полезен, — это -v . Когда используется эта опция, команда печатает имя каждого перемещенного файла:
Выводы
Команда mv используется для перемещения и переименования файлов и каталогов.
Для получения дополнительных сведений о команде mv страницу руководства или введите в терминале man mv .
Новые пользователи Linux, которых пугает командная строка, могут использовать файловый менеджер с графическим интерфейсом для перемещения своих файлов.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Базовые команды в Linux для начинающих
Для пользователей из мира Windows взаимодействие с командной строкой в Linux поначалу может показаться несколько пугающей и запутанной затеей. Однако использовать её не так уж и сложно. В этой статье мы рассмотрим наиболее распространенные команды в Linux.
Навигация по файловой системе
При навигации по файловой системе в Linux можно использовать как абсолютный, так и относительный пути к ресурсу.
Абсолютный (или полный) путь начинается с корневого каталога, обозначаемого символом / , а относительный путь начинается с текущего каталога (в котором в данный момент работает пользователь).
Команда pwd
Команда pwd (от англ. «present working directory») позволяет узнать, в каком каталоге вы находитесь в данный момент:
Результатом будет путь к текущему рабочему каталогу:
Команда cd
Команда cd (от англ. «change directory») используется для смены текущего рабочего каталога. При использовании без каких-либо параметров, команда cd перенесет вас в ваш домашний каталог:
Чтобы перейти в другой каталог, вы можете использовать абсолютный или относительный путь. Например, перейти в папку Downloads, расположенную в текущем каталоге, можно как через относительный путь:
Так и через абсолютный путь:
Две точки .. обозначают родительский каталог или каталог уровнем выше текущего. Предположим, что в данный момент вы находитесь в каталоге /usr/local/bin. Чтобы перейти в каталог /usr/local (на один уровень выше текущего каталога), необходимо ввести:
Чтобы подняться на два уровня вверх:
Чтобы вернуться к предыдущему рабочему каталогу, используйте символ тире – в качестве опции:
Если каталог, который вы хотите изменить, имеет пробелы в своем имени, то вы должны либо взять путь в кавычки, либо использовать символ обратной косой черты \ :
$ cd имя\ каталога\ с\ пробелами
Работа с файлами и каталогами
Команда ls
Команда ls (от англ. «list») выводит информацию о файлах и каталогах внутри заданного каталога. При использовании без параметров, данная команда отобразит в алфавитном порядке список имен всех файлов в текущем рабочем каталоге:
Чтобы вывести содержимое конкретного каталога, достаточно указать путь к этому каталогу в качестве параметра:
По умолчанию, команда ls отображает только имена файлов и каталогов. Для более подробного вывода применяется опция -l :
Выходные данные будут содержать информацию о типе файла, разрешениях, количестве ссылок на него, владельце, группе, размере, дату и имя файла:
-rw-r—r— 1 root root 337 Oct 4 11:31 /etc/hosts
По умолчанию, команда ls не показывает скрытые файлы (файлы, имена которых начинаются с точки . ). Чтобы отобразить все файлы, включая скрытые, используйте опцию -a :
Для вывода списка всех файлов в подкаталогах используйте опцию -R :
Команда file
Файлы в Linux не обязаны всегда иметь расширения для того, чтобы с ними можно было работать. Поэтому пользователю иногда трудно определить, что за файл перед ним. Команда file помогает решить данную проблему, отображая информацию о типе файла на основе его содержания:
/etc/fstab: ASCII text
Команда file может работать и с директориями, например:
/tmp/: sticky, directory
Команда touch
Команда touch используется для создания новых пустых файлов, а также для обновления временных меток в уже существующих файлов и каталогов.
Чтобы создать новый файл, используйте команду touch с именем (создаваемого) файла в качестве параметра:
Если файл уже существует, команда touch изменит отметку о времени последнего доступа (или изменения) к нему.
Команда mkdir
Команда mkdir (от англ. «make directory») позволяет создавать новые каталоги. Для этого укажите имя каталога в качестве параметра:
В качестве параметров команда mkdir может принимать одно или несколько имен каталогов. Если параметром является имя каталога без полного пути, то новый каталог создастся в текущем рабочем каталоге.
Для создания родительских каталогов используется опция -p :
$ mkdir -p Projects/ravesli.com/src/assets/images
Вышеприведенная команда создаст полную структуру каталогов.
При использовании команды mkdir с опцией -p , она создает каталог только в том случае, если он изначально отсутствует.
Команда rmdir
Команда rmdir (от англ. «remove directory») используется для удаления (только) пустых каталогов:
Команда ln
Команда ln (от англ. «link») используется для создания символьных ссылок. Символьная ссылка — это особый тип файла, который указывает на другой файл или каталог. Чтобы создать символьную ссылку, используйте команду ln -s , указывая имя файла в качестве первого параметра и имя символьной ссылки в качестве второго параметра:
$ ln -s имя_файла имя_ссылки
Если в качестве параметра указан только файл, команда ln создаст в текущем рабочем каталоге ссылку на этот файл с тем же именем, что у файла.
Команда rm
Команда rm (от англ. «remove») используется для удаления файлов и каталогов. При указании без параметров данная команда удаляет только файлы. Стоит отметить, что при этом команда не запрашивает у пользователя подтверждения на продолжение удаления файлов.
Чтобы удалить файл или символьную ссылку, используйте команду rm и имя файла в качестве параметра:
Также в качестве параметров допускается указывать одно или несколько имен файлов или каталогов.
Опция -i указывает команде rm запрашивать у пользователя подтверждение перед удалением файла:
rm: удалить пустой обычный файл ‘file.txt’?
Опция -d используется для удаления одного или нескольких пустых каталогов:
Чтобы рекурсивно удалить непустые каталоги и все файлы в них, используйте опцию -r (от англ. «recursive»):
Опция -f указывает команде rm никогда не запрашивать подтверждения у пользователя и игнорировать несуществующие файлы.
Примечание: Будьте очень осторожны с командой rm -rf и дважды проверьте, в каком каталоге вы находитесь, т.к. вызов rm -rf безвозвратно (и без дополнительного подтверждения) удалит все файлы и папки из него.
Команда cp
Команда cp (от англ. «copy») позволяет копировать файлы и каталоги. Чтобы скопировать файл в текущий рабочий каталог, используйте исходный файл в качестве первого параметра, а новый файл — в качестве второго:
$ cp file file_backup
Чтобы скопировать файл в другой каталог, укажите абсолютный или относительный путь к целевому каталогу. Если в качестве места назначения указано только имя каталога, то скопированный файл будет иметь то же имя, что и исходный файл.
$ cp file.txt /backup
По умолчанию, если файл назначения существует, он будет перезаписан.
Чтобы скопировать каталог, вместе с его файлами и подкаталогами, используйте опцию -R или -r :
$ cp -R Pictures /opt/backup
Команда mv
Команда mv (от англ. «move») используется для перемещения файлов и каталогов из одного места в другое, а также для переименования файлов. Например, чтобы переместить файл file.txt в каталог /tmp, вы должны выполнить:
Чтобы переименовать файл, необходимо указать имя целевого файла, а затем его новое имя:
$ mv file.txt file1.txt
Синтаксис перемещения каталогов такой же, как и при перемещении файлов. Чтобы одновременно переместить несколько файлов и каталогов, укажите конечный каталог в качестве последнего параметра:
$ mv file.tx1 file1.txt /tmp
Команда tar
Команда tar является наиболее часто используемой командой для объединения нескольких файлов в один *.tar-архив — распространенный формат файлов Linux (похожий на формат .zip), причем процедура сжатия для него не является обязательной.
Предположим, что нам нужно создать .tar-архив каталога /etc, для этого необходимо использовать следующую команду:
$ tar -cvf myarchive.tar /etc
Опция -c указывает команде tar на то, что мы создаем .tar-файл, опция -v отображает список обрабатываемых файлов, а опция -f применяется для указания имени архивного файла.
Если вы хотите добавить файл к уже существующему .tar-архиву, то вместо опции -c используется опция -r . Например, давайте добавим к нашему архиву myarchive.tar файл /etc/fstab:
$ tar -rvf myarchive.tar /etc/fstab
Примечание: К уже сжатому .tar-файлу добавить новый файл или каталог не получится.
Извлечение в текущую папку файлов и каталогов из архивного файла выполняется с помощью опции -x :
$ tar -xvf myarchive.tar
Опция -C дает пользователю возможность самостоятельно указывать путь для извлекаемых файлов:
$ tar -xvf myarchive.tar -C /tmp/
Команды zip и unzip
Команда zip применяется для сжатия файлов в .zip-архив, а команда unzip — для извлечения заархивированных файлов из .zip-архива.
Чтобы создать архив из нескольких файлов, просто укажите имя создаваемого архива и перечислите список помещаемых в него файлов:
$ zip newarchive.zip file1 file2 file3
Если вы хотите сжать каталог вместе с вложенными в него файлами, то необходимо использовать опцию -r :
$ zip –r newarchive.zip /home/diego/mydocs/
Также, цифрами от 0 (без сжатия, быстро) до 9 (максимальное сжатие, медленно) вы можете указывать степень сжатия будущего архива. По умолчанию, используется 6-й уровень сжатия:
$ zip -9 –r newarchive.zip /home/diego/mytxtfiles/
Для извлечения содержимого архива в текущий каталог используется команда unzip :
Опция -d позволяет распаковать содержимое архива в указанную папку, например:
$ unzip myarchive.zip –d /tmp/
Команда find
Команда find выполняет поиск файлов и каталогов в заданном каталоге. Например, следующая команда будет искать файл с именем notes.txt в каталоге /home и его подкаталогах:
$ find /home/ -name notes.txt
Команда df
Команда df (от англ. «disk free») используется для получения отчета об использовании дискового пространства системы, отображаемого в процентах и килобайтах. Если вы хотите просмотреть отчет в мегабайтах, используйте:
Команда du
Команда du (от англ. «disk usage») используется для проверки того, сколько места занимает указанный файл или каталог. Чтобы увидеть занимаемое дисковое пространство в байтах, килобайтах или мегабайтах, добавьте опцию -h :
Владение файлами и права доступа
Команда chmod
Команда chmod (от англ. «change mode») позволяет изменить права доступа к файлам. Она работает в двух режимах: символьном и числовом.
При использовании числового режима вы можете установить разрешения для владельца, группы и всех остальных при помощи заданного набора чисел. Разрешения на запись, чтение и выполнение имеют следующие числовые значения:
x (выполнение) = 1
нет разрешений = 0
Совокупность разрешений для определенного класса пользователей описывается суммой соответствующих значений разрешений. Например, чтобы дать владельцу файла права на чтение и запись, а также только права на чтение членам группы и всем другим пользователям, необходимо выполнить:
$ chmod 644 имя_файла
Только пользователь root, владелец файла или пользователь с правами sudo могут изменять права доступа к файлу.
Для рекурсивного изменения прав всех файлов и папок в заданном каталоге, используйте команду chmod с опцией -R :
$ chmod -R 755 имя_каталога
Команда chown
Команда chown (от англ. «change owner») позволяет изменить владельца и группу заданного файла, каталога или символьной ссылки.
Чтобы изменить владельца файла, достаточно выполнить:
$ chown имя_пользователя имя_файла
Чтобы изменить как владельца, так и группу файла, вызовите:
$ chown имя_пользователя:имя_группы имя_файла
Используйте опцию -R , чтобы рекурсивно обработать все файлы и каталоги в заданном каталоге:
$ chown -R имя_пользователя:имя_группы имя_каталога
Команда sudo
Команда sudo (от англ. «Substitute User and do« = «подменить пользователя и выполнить») позволяет запускать программы от имени другого пользователя (по умолчанию, используется пользователь root). Использование команды sudo , вместо входа в систему под учетной записью пользователя root, более безопасно, поскольку вы можете предоставить ограниченные административные привилегии отдельным пользователям, не зная пароля пользователя root.
Чтобы использовать sudo , просто добавьте префикс sudo перед командой:
Управление пользователями и группами
Команда uname
Команда uname с опцией -a выведет подробную информацию о вашей системе: имя машины, версия операционной системы, ядра и т.д.
Linux debian 5.10.0-6-amd64 #1 SMP Debian 5.10.28-1 (2021-04-09) x86_64 GNU/Linux
Команды useradd и passwd
Команда useradd позволяет создавать новых пользователей. Чтобы создать новую учетную запись пользователя, вызовите команду useradd вместе с именем нового пользователя:
После создания пользователя установите ему пароль, выполнив команду passwd:
Команда userdel
Команда userdel используется для удаления учетной записи пользователя:
Опция -r удаляет домашний каталог пользователя и связанные с ним данные:
$ userdel -r имя_пользователя
Команды groupadd и groupdel
Команда groupadd используется для создания новой группы. Просто укажите название группы в качестве параметра:
Чтобы удалить группу, используйте команду groupdel с именем группы в качестве параметра:
Команда usermod
Чтобы добавить существующего пользователя в группу, используйте команду usermod с опцией -G и именем группы:
$ usermod -a -G sudo ravesligroup
Управление процессами
Команда top
Команда top отображает в режиме реального времени список запущенных процессов, их числовые идентификаторы (сокр. «PID» от англ. «Process IDentificator») и насколько сильно каждый из них нагружает CPU:
Команда kill
Если у вас есть зависшая программа, то вы можете вручную завершить её работу, послав с помощью команды kill соответствующий сигнал.
Всего существует 64 различных сигнала, но самыми популярными являются два:
SIGTERM (15) — сигнал завершения работы программы, при котором ей дается некоторое время, чтобы сохранить свой прогресс и данные.
SIGKILL (9) — сигнал, требующий от программы немедленного завершения. Все несохраненные данные при этом будут потеряны.
Например, зная PID нужного вам процесса, послать ему сигнал можно следующим образом:
В этом примере параметр -9 отвечает за сигнал SIGKILL (9), а 3501 — это идентификатор (PID) нужного вам процесса.
Работа с сетью
Команда ping
Команда ping применяется в тех случаях, когда необходимо проверить состояние подключения к серверу. Например:
Данная команда проверит, сможете ли вы подключиться к сайту Ravesli, а также измерит и отобразит время отклика.
Команда wget
Команда wget пригодится вам, если вы собираетесь загрузить из Интернета какие-либо файлы (или страницы сайтов). Она поддерживает протоколы HTTP, HTTPS, FTP, а также работу через прокси-серверы. Для загрузки нужного вам файла просто передайте его адрес в качестве параметра команде wget :
Команда hostname
Команда hostname используется для проверки имени вашего хоста. Добавление опции -I в её конец покажет его IP-адрес.
Работа с текстом
Команда head
Команда head используется для просмотра первых строк любого текстового файла. По умолчанию она будет показывать первые десять строк, но с помощью опции -n вы можете изменить это число. Например, для отображения только первых пяти строк, введите:
$ head -n 5 filename.txt
Команда tail
Команда tail отображает последние десять строк текстового файла:
$ tail -n filename.txt
Команда diff
Команда diff (от англ. «difference») производит построчное сравнение содержимого двух файлов. После анализа файлов, выводится список несовпадающих строк. Программисты часто используют данную команду, когда им нужно внести некоторые изменения в исходный код программы:
$ diff file1.txt file2.txt
Команда grep
Команда grep (от англ. «search globally for lines matching the regular expression, and print them») позволяет искать указанный текст в указанном файле, например:
$ grep blue notepad.txt
Вышеприведенная команда будет искать слово blue в файле notepad.txt и выведет все строки, в которых содержится искомое слово.
Команда echo
Команда echo используется для вывода в терминал строки, указанной ей в качестве параметра. Часто команда echo применяется для перемещения некоторых данных в файл. Например, если вы хотите добавить строку «Hello, world!» в файл с именем name.txt, выполните:
$ echo «Hello, world!» >> name.txt
Команда cat
Команда cat (от англ. «concatenate») склеивает файлы, а также позволяет вывести на экран содержимое одного или нескольких файлов. Чтобы отобразить содержимое файла, необходимо указать его имя в качестве параметра команды cat :
Установка и удаление пакетов
Менеджер пакетов — это инструмент, который позволяет устанавливать, обновлять, удалять и управлять пакетами программного обеспечения, специфичными для дистрибутива Linux. Различные дистрибутивы Linux имеют различные менеджеры и форматы пакетов.
Только root или пользователь с привилегиями sudo может устанавливать и удалять пакеты.
apt (Ubuntu и Debian)
apt (от англ. «Advanced Package Tool») — это система управления пакетами, используемая дистрибутивами на базе Debian. В дистрибутивах на базе Debian существует несколько инструментов управления пакетами с помощью командной строки, причем наиболее часто используются apt и apt-get.
Перед установкой нового пакета сначала необходимо обновить информацию о пакетах:
Индекс apt — это база данных, содержащая записи доступных в репозиториях пакетов, подключенных в вашей системе.
Чтобы обновить установленные пакеты до последних версий, выполните:
Установка пакетов так же проста:
$ apt install имя_пакета
Чтобы удалить установленный пакет, введите:
$ apt remove имя_пакета
dnf (CentOS и Fedora)
rpm (сокр. от англ. «Red Hat Package Manager») — это мощная система управления пакетами, используемая в дистрибутивах от Red Hat и производных дистрибутивах, таких как: CentOS и Fedora. С rpm также связаны команда rpm и .rpm-формат пакетов.
Чтобы установить новый пакет в дистрибутивах от Red Hat, вы можете использовать команду yum или dnf:
$ dnf install имя_пакета
Начиная с CentOS 8, dnf заменил yum в качестве менеджера пакетов по умолчанию, при этом dnf обратно совместим с yum .
Чтобы обновить установленные пакеты до последних версий, введите:
Удаление пакетов так же просто, как:
$ dnf remove имя_пакета
Справка
Параметр help
Большинство команд имеют параметр —help , при помощи которого выводится короткое сообщение о том, как использовать указанную команду:
Команда man
Почти все команды в Linux распространяются вместе с man-страницами (от англ. «manual») — документация, которая объясняет, что делает команда, приводит примеры ее использования и сообщает какие параметры и опции она поддерживает.
Команда man применяется для отображения страницы руководства по заданной команде:
Например, чтобы открыть главную страницу справки по команде cd , вы должны ввести:
Для навигации по справочным страницам используйте клавиши со стрелочками вверх и вниз. Также вы можете нажать:
клавишу Enter для перемещения на одну строку за раз;
клавишу (Пробел) для перехода к следующему экрану;
клавишу b для возврата на один экран назад;
клавишу q для выхода из справочной страницы.
Команда history
Если вы используете Linux в течение определенного периода времени, вы быстро заметите, что можете выполнять десятки (если не сотни) команд каждый день. Таким образом, запуск команды history особенно полезен, если вы хотите просмотреть ранее введенные команды:
Команда whereis
Команда whereis отображает полный путь к исполняемому файлу программы (или к исходным файлам, если они присутствуют в системе). Например:
gcc: /usr/bin/gcc /usr/lib/gcc /usr/share/gcc
Дополнительно
Команда clear используется для очистки терминала, если он загроможден слишком большим количеством данных от прошлых команд
Нажатие на клавишу TAB (табуляция) приведет к автоматическому дополнению того, что вы в данный момент набираете в терминале. Например, если вам нужно перейти в папку Documents, то начните вводить команду cd Docu , а затем нажмите на клавишу TAB и терминал автоматически дополнит команду до cd Documents .
Сочетания клавиш:
Ctrl+C — останавливает и завершает команду;
Ctrl+Z — ставит выполнение команды на паузу;
Ctrl+S — временно приостанавливает вывод информации в терминал;
Ctrl+Q — продолжает вывод информации в терминал;
Ctrl+A — перемещает вас в начало строки;
Ctrl+E — перемещает вас в конец строки.
Вы можете запускать несколько команд в одной строке, отделяя их с помощью символа ; , например:
$ команда1; команда2; команда3
Если вместо ; использовать && , то следующая команда выполнится только после успешного выполнения предыдущей.
Как переместить (переименовать) файл или папку в терминале Linux
При работе с Linux через терминал часто приходится выполнять различные операции с файлами. Например, редактировать конфигурационные файлы, скачивать архивы, делать резервные копии и т. д.
В данной статье мы рассмотрим операции перемещения и переименования файлов. Здесь вы узнаете, как перемещать и переименовывать файлы через терминал Linux. Материал будет актуален для любого дистрибутива Linux, например, Ubuntu, Debian или CentOS.
Команда mv
Для перемещения и переименования файлов в Linux используется команда mv . Это служебная программа для командной строки, которая позволяет перемещать или переименовывать файлы и папки.
Синтаксис команды mv выглядит следующим образом:
Основные опции для данной команды:
-f | Перезапись без подтверждения пользователя. Данная опция отменяет действие опций -i или -n. |
-i | Интерактивный режим работы. При перезаписи программа будет выдавать запрос на подтверждения пользователя. |
-n | Запрет перезаписи. Данная опция отменяет действие опций -f или -i. |
-v | Вывод подробной информации. |
Обратите внимание, по умолчанию команда mv перезаписывает существующие файлы новыми. Чтобы этого избежать используйте опцию -i или -n .
Как переместить файл в терминале Linux
Для того чтобы переместить файл в другой каталог при помощи команды mv достаточно ввести данную команду, указать файл и его новое место расположения. Например, для того чтобы переместить файл « file.txt » во вложенную папку « temp » нужно выполнить:
При необходимости можно переместить сразу несколько файлов. Для этого нужно перечислить файлы и в конце указать новое место назначение. Например, для того чтобы переместить « file.csv » и « file.txt » в папку « temp » нужно выполнить:
Также для перемещения нескольких файлов можно использовать маску. Например, для того чтобы переместить все файлы с расширением txt нужно выполнить следующее:
Аналогичным способом можно перемещать и папки, как пустые, так и с файлами и вложенными папками. Например, для того чтобы переместить папку « test » в папку « temp » нужно выполнить:
При перемещении файлов или папок можно сразу указать для них и новое имя. Например, для того чтобы переместить « file.txt » в папку « temp » и переименовать его в « old_file.txt » нужно выполнить:
Как переименовать файл в терминале Linux
Также команду mv можно использовать для переименования файлов или папок без изменения места их расположения. Для этого достаточно ввести команду mv , указать файл или папку, а также новое название. Например, для того чтобы переименовать папку « temp » в « trash » нужно выполнить:
Обратите внимание, если бы папка « trash » существовала, то данная команда выполнила бы перемещение папки « temp » внутрь папки « trash ».
- Как удалить папку в Linux через терминал (консоль)
- Как открыть файл в терминале Linux
- Как создать файл в Linux через терминал
- Как скопировать файл в Linux через терминал
- Как удалить файл в Linux через терминал
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Задайте вопрос в комментариях под статьей или на странице «Задать вопрос» и вы обязательно получите ответ.
Основы навигации и управления файлами в Linux
Пользователи Linux, у которых нет большого опыта работы с подобными системами, сталкиваются с трудностями при управлении операционной системой из командной строки. В этой статье мы попытаемся помочь вам разобраться с основами навигации и управления файлами в дистрибутивах Linux.
К сожалению, одно руководство может охватить все, что вам нужно знать для работы с Linux. Тем не менее, здесь вы найдёте всю необходимую информацию для получения базовых навыков.
Требования
- Чтобы следовать данному руководству, нужно иметь доступ к серверу Linux. Узнать, как впервые подключиться к серверу, можно в статье SSH-подключение к серверу.
- Также нужно иметь базовые навыки работы с терминалом и знать основные команды Linux. Больше информации по этой теме вы найдёте в руководстве Основы работы с терминалом Linux.
- Все действия, описанные в этом руководстве, можно выполнить с помощью обычной учетной записи пользователя (не root). Узнать, как настроить такого пользователя, можно в руководствах по начальной настройке сервера (Ubuntu 14.04, CentOS 7).
Для начала подключитесь к серверу Linux по SSH.
1: Навигация и просмотр системы
Перемещение по файловой системе и просмотр данных – одни из самых базовых навыков, которыми должен обладать пользователь Linux.
Команда pwd: вывод текущего каталога
Как правило, при входе на сервер вы попадаете в домашний каталог текущего пользователя.
Домашний каталог – это каталог, зарезервированный для хранения файлов и создания каталогов пользователя. Это место в файловой системе, где текущий пользователь имеет полные права.
Чтобы узнать, где находится домашний каталог по отношению к остальной файловой системе, используйте команду pwd. Эта команда отображает каталог, в котором вы сейчас находитесь:
Название домашнего каталога совпадает с именем пользователя, которому он принадлежит (например, в данном случае пользователь называется demo). Этот каталог хранится в каталоге /home, который в свою очередь находится в каталоге высшего уровня root (представлен символом слеша /).
Команда ls: просмотр содержимого каталога
Теперь вы знаете, как определить каталог, в котором вы находитесь, вы можете посмотреть содержимое этого каталога.
В настоящее время просматривать домашний каталог не имеет особого смысла (он содержит мало файлов). Для примера перейдите в другой каталог, в котором храниться больше файлов.
Чтобы перейти в другой каталог, введите в терминал (команда pwd подтвердит, что вы перешли в новый каталог):
cd /usr/share
pwd
/usr/share
Примечание: Подробнее перемещение по каталогам рассматривается в следующем разделе.
Теперь попробуйте запросить содержимое каталога:
ls
adduser groff pam-configs
applications grub perl
apport grub-gfxpayload-lists perl5
apps hal pixmaps
apt i18n pkgconfig
aptitude icons polkit-1
apt-xapian-index info popularity-contest
. . .
Как видите, в этом каталоге много различных элементов. В команду можно добавлять дополнительные флаги, чтобы изменить её поведение по умолчанию. Например, чтобы получить расширенный вывод, нужно использовать флаг –l:
ls -l
total 440
drwxr-xr-x 2 root root 4096 Apr 17 2014 adduser
drwxr-xr-x 2 root root 4096 Sep 24 19:11 applications
drwxr-xr-x 6 root root 4096 Oct 9 18:16 apport
drwxr-xr-x 3 root root 4096 Apr 17 2014 apps
drwxr-xr-x 2 root root 4096 Oct 9 18:15 apt
drwxr-xr-x 2 root root 4096 Apr 17 2014 aptitude
drwxr-xr-x 4 root root 4096 Apr 17 2014 apt-xapian-index
drwxr-xr-x 2 root root 4096 Apr 17 2014 awk
. . .
Это выведет множество информации, большая часть которой выглядит непривычно. Первый блок описывает тип файла (d указывает на каталог, символ «-» – на обычный файл) и права на него. Каждый последующий столбец, разделенный пробелами, определяет количество жестких ссылок, владельца файла, группу, размер элемента, время последнего изменения и имя элемента.
Чтобы получить список всех файлов, включая скрытые, добавьте флаг –а. Поскольку в каталоге /usr/share нет скрытых файлов, вернитесь в домашний каталог:
Затем запросите список файлов:
ls -a
. .. .bash_logout .bashrc .profile
Как вы можете видеть, в этом каталоге есть три скрытых файла. Символы . и .. являются специальными индикаторами. В дальнейшем вы заметите, что конфигурационные файлы часто хранятся как скрытые.
Записи с одной и двумя точками – это не каталоги, а встроенные методы обращения к каталогам. Одна точка указывает текущий каталог, а две точки определяют родительский каталог этого каталога.
Команда cd: перемещение по файловой системе
В предыдущем разделе вы уже дважды переходили в другой каталог с помощью команды cd. Теперь мы рассмотрим эту команды подробнее.
Для начала вернитесь в каталог /usr/share.
В этом примере для перехода в каталог используется абсолютный путь. В Linux каждый файл и каталог относится к каталогу высшего уровня, который называется корневым каталогом (или root). Ссылаться на него можно с помощью одного слеша «/». Абсолютный путь указывает расположение каталога по отношению к корневому каталогу. Это позволяет однозначно ссылаться на каталоги из любого места файловой системы. Каждый абсолютный путь должен начинаться со слеша.
Альтернативой является относительный путь. Относительные пути определяют место каталога относительно текущего каталога. Если каталог находится близко к текущему каталогу в иерархии, путь будет проще и короче. На любой каталог в текущем каталоге можно ссылаться по имени и без слеша. Например, чтобы перейти в каталог locale в /usr/share из текущего местоположения, можно ввести:
Аналогичным образом с помощью относительного пути можно убрать несколько уровней каталогов, предоставляя только ту часть пути, которая идет после пути текущего каталога. К примеру, чтобы перейти в каталог LC_MESSAGES внутри каталога en, можно ввести:
Чтобы вернуться к родительскому каталогу текущего каталога, используйте две точки (речь об этом уже шла в предыдущем разделе). Например, чтобы из каталога /usr/share/locale/en/LC_MESSAGES перейти к каталогу предыдущего уровня, можно ввести:
Команда переведёт вас в каталог /usr/share/locale/en.
Команда cd без аргументов всегда будет возвращать вас в ваш домашний каталог:
2: Просмотр файлов
В предыдущем разделе вы научились перемещаться по файловой системе. При этом вы могли обратить внимание на файлы, которые хранятся в разных каталогах. В этом разделе вы научитесь работать с файлами. В отличие от некоторых других операционных систем, Linux и другие Unix-подобные операционные системы во многом зависят от обычных текстовых файлов.
Основной способ просмотра файлов – это команда less (также она называется программой постраничного вывода). Все предыдущие команды выполнялись сразу и возвращали вас в командную строку, но приложение less будет продолжать работу и занимать экран, пока вы не остановите его.
Откройте /etc/services (этот конфигурационный файл хранит данные о сервисах системы).
Команда less откроет файл. Вы увидите отрывок документа, который помещается в окно терминала.
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, officially ports have two entries
# even if the protocol doesn’t support UDP operations.
#
# Updated from http://www.iana.org/assignments/port-numbers and other
# sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services .
# New ports will be added on request if they have been officially assigned
# by IANA and used in the real-world or are needed by a debian package.
# If you need a huge list of used numbers please install the nmap package.
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp
. . .
Для прокрутки можно использовать клавиши со стрелками вверх и вниз на клавиатуре. Чтобы вывести на экран следующий отрывок файла, вы можете использовать пробел, кнопку Page Down или сочетание клавиш CTRL-f.
Чтобы вернуться к предыдущему экрану, нажмите Page Up или CTRL-b.
Чтобы найти в документе какой-либо текст, введите слеш, после которого укажите искомое слово. Например, чтобы найти «mail», нужно ввести:
Команда выполнит поиск по файлу и остановится на первом найденном слове, которое соответствует запросу. Чтобы перейти к следующему слову, введите n в нижнем регистре:
Чтобы вернуться к предыдущему результату, нужно ввести N в верхнем регистре:
Чтобы закрыть less, введите:
Кроме less существует ещё много других способов просмотра файлов. Команда cat отображает содержимое файла и немедленно возвращает вас в командную строку. Команда head по умолчанию показывает первые 10 строк файла. Аналогично, команда tail выводит последние 10 строк. Такой вывод удобно использовать в конвейеризации данных для других команд.
Примечание: Ознакомьтесь с работой вышеперечисленных команд самостоятельно (можно на примере файла /etc/services).
3: Управление файлами и каталогами
Команда touch: создание файла
Многие команды и программы могут создавать файлы. Самый простой метод создания файла – это команда touch. Она создаст пустой файл, используя указанное имя и местоположение.
Для начала убедитесь, что находитесь в домашнем каталоге (здесь у пользователя есть права на сохранение файлов). Затем попробуйте создать файл file1, набрав:
Теперь запросите содержимое каталога, и вы увидите новый файл:
Если указать в команде touch уже существующий файл, команда просто обновит данные, хранящиеся в этом файле с момента последнего изменения (на данный момент эта функция не нужна).
Также команда touch может создавать несколько файлов одновременно и использовать абсолютные пути. Например, если пользователь называется demo, можно ввести:
touch /home/demo/file2 /home/demo/file3
ls
file1 file2 file3
Команда mkdir: создание каталогов
Подобно команде touch, команда mkdir позволяет создавать пустые каталоги.
Например, чтобы создать каталог test в домашнем каталоге, нужно ввести:
Чтобы добавить каталог example в каталог test, введите:
Чтобы эта команда сработала, каталог верхнего уровня (в данном случае это test) должен уже существовать в системе. Чтобы команда mkdir создала все каталоги, указанные в пути, используйте опцию –р. Она создаёт вложенные каталоги. К примеру, чтобы создать все каталоги в пути some/other/directories, нужно ввести:
mkdir -p some/other/directories
Команда создаст каталоги some, other и directories в порядке их перечисления.
Команда mv: перемещение и переименование файлов и каталогов
Чтобы переместить файл в новое место, используйте mv. К примеру, чтобы переместить файл file1 в каталог test, нужно ввести:
В команде указываются элементы, которые нужно переместить, а затем точка в системе, в которую их нужно переместить. Чтобы вернуть файл в предыдущее место (в домашний каталог), поставьте после пути к файлу точку. Перейдите в домашний каталог и введите:
cd
mv test/file1 .
Команда mv также используется для переименования файлов и каталогов (хотя интуитивно это понять сложно). По сути, перемещение и переименование – это всего лишь настройка местоположения и имени существующего элемента.
Чтобы переименовать каталог test в testing, введите:
mv test testing
Примечание. Важно понимать, что система Linux не предотвращает некоторые разрушительные по отношению к ней действия. Например, если вы переименовываете файл и выбираете уже существующее имя, предыдущий файл будет перезаписан файлом, который вы в него перемещаете. Восстановить предыдущий файл невозможно.
Команда cp: копирование файлов и каталогов
Команда cp может создать копию существующего элемента.
К примеру, можно скопировать файл file3 в новый файл file4.
Теперь у вас есть два файла: file3 и file4.
Примечание: Как и в случае с командой mv, вы можете случайно перезаписать файл, если укажете имя существующего файла в качестве целевого. Например, если file4 уже существует, его содержимое будет полностью заменено содержимым file3 и восстановить его не получится.
Чтобы скопировать каталог, добавьте опцию –r. Она копирует каталог и всё его содержимое. Её нужно использовать даже тогда, когда вы копируете пустой каталог.
Например, скопируйте структуру каталогов some в новую структуру again:
cp -r some again
В отличие от файлов, которые перезаписывают целевой файл, если такой существует, каталоги будут просто скопированы в целевой каталог.
Эта команда создаст копию файла file1 в каталоге again.
Команды rm и rmdir: удаление файлов и каталогов
Команда rm удаляет файлы.
Примечание: Будьте предельно внимательны при работе с rm. Система не может отменить её действия, потому вы можете навсегда утратить важные данные.
Чтобы удалить обычный файл, просто укажите его имя:
Команда rmdir удаляет пустые каталоги. На будет выполнена только тогда, когда указанный в ней каталог пуст. Например, чтобы удалить каталог example, можно ввести:
Чтобы удалить каталог, в котором находятся какие-либо элементы, нужно использовать команду rm с опцией –r, которая удалит все содержимое каталога, а затем и сам каталог.
К примеру, чтобы удалить каталог again, нужно ввести:
4: Редактирование файлов
Теперь вы можете управлять файлами и каталогами сервера. В этом разделе вы научитесь редактировать содержимое файлов.
Команда nano – один из самых простых текстовых редакторов командной строки Linux. Редактор nano использует less и занимает терминал в течение всего времени работы.
Редактор nano может открыть существующие файлы или создать файл. Если вы хотите создать новый файл, вы можете присвоить ему имя при вызове редактора nano или во время сохранения файла.
Чтобы отредактировать file1, введите:
Приложение nano откроет файл (который на данный момент пуст). Интерфейс выглядит так:
GNU nano 2.2.6 File: file1
[ Read 0 lines ] ^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos
^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell
Вверху указывается имя приложения и имя редактируемого файла. В центре находится содержимое файла (в данном случае там нет ничего, поскольку файл пуст). В конце перечислены комбинации клавиш для управления редактором (символ ^ везде означает клавишу CTRL).
Чтобы запросить справку в редакторе, введите:
Чтобы закрыть справку, введите:
В редакторе можно вводить или изменять любой текст. Например, можно добавить в файл:
Hello there.
Here is some text.
Чтобы сохранить изменения, нажмите CTRL-O. Программа попросит подтвердить имя файла, который вы хотите сохранить.
File Name to Write: file1
^G Get Help M-D DOS Format M-A Append M-B Backup File
^C Cancel M-M Mac Format M-P Prepend
Как видите, внизу уже указаны другие опции. Редактор выводит их в зависимости от контекста (это означает, что они будут меняться в зависимости от того, что вы пытаетесь сделать). Если вы хотите сохранить изменения в file1, просто нажмите Enter.
Внесите в файл некоторые дополнительные изменения, попробуйте сохранить его и выйти из программы. После этого вы увидите:
Save modified buffer (ANSWERING «No» WILL DESTROY CHANGES) ?
Y Yes
N No ^C Cancel
Чтобы сохранить изменения, введите Y. Чтобы не сохранять, нажмите N. Чтобы не закрывать файл, нажмите CTRL-C. Если вы захотите сохранить изменения, программа предложит снова выбрать имя файла для сохранения. Чтобы сохранить в текущий файл и закрыть редактор, нажмите Enter.
Чтобы просмотреть содержимое файла, используйте cat или less.
less file1
Hello there.
Here is some text.
Another line.
В некоторых системах используется редактор vim или vi. Это более продвинутый и производительный редактор, но с ним сложно работать. Вместо vim или vi всегда можно использовать nano.
Заключение
Теперь у вас есть общее представление о том, как работает и выглядит сервер Linux.