- Работа с файлами и каталогами в Linux
- Навигация
- Поиск своего местоположения
- Перемещение по файловой системе
- Просмотр содержимого каталогов
- Просмотр содержимого файлов
- Поиск файлов
- Основные операции с файлами и каталогами
- Создание файла
- Создание каталога
- Удаление файлов и каталогов
- Перемещение и переименование
- Копирование
- Размер файлов и директорий
- Отображение размера директории в конкретных единицах измерения
- Редактирование файлов
- Копирование и вставка
- Поиск и замена
- Сохранение и выход из редактора
- Как перемещать файлы и каталоги в Linux (команда mv)
- Как использовать команду mv
- Перемещение нескольких файлов и каталогов
- Параметры команды mv
- Запрашивать перед перезаписью
- Принудительная перезапись
- Не перезаписывать существующие файлы
- Резервное копирование файлов
- Подробный вывод
- Выводы
Работа с файлами и каталогами в Linux
Если у вас нет большого опыта работы с системами Linux, вы можете быть очень удивлены возможностями управления операционной системой из командной строки. Понимание принципов работы через консоль пригодится и для управления домашним компьютером, например, с ОС Ubuntu, и для администрирования серверов cloud.timeweb.com с установленными Unix-подобными системами. В этой статье мы попытаемся ознакомить вас с основами. Это руководство должно дать вам необходимый минимум знаний и хорошую отправную точку для дальнейших исследований.
Навигация
Наиболее фундаментальные навыки, которыми вам необходимо овладеть, — это перемещение по файловой системе и получение представления о том, что находится вокруг вас. В этом разделе мы обсудим инструменты, которые позволят вам это сделать.
Поиск своего местоположения
После того как вы подключаетесь к своему серверу, вы обычно попадаете в домашний каталог вашей учетной записи пользователя (если не применены нестандартные настройки). Домашняя директория — это директория, которая используется для хранения пользовательских файлов, например документов, фото, видео-файлов. В этой директории вы имеете полные права для совершения любых действий, таких как создание, перемещение, удаление файлов и директорий. Чтобы узнать, где находится домашний каталог пользователя, используйте команду pwd (сокращение от print working directory). Эта команда выведет путь до каталога, в котором вы находитесь в данный момент:
В ответ вы должны получить строку, которая выглядит похожим образом:
Название домашней директории пользователя совпадает с именем его учетной записи. Этот каталог находится внутри каталога /home , который, в свою очередь, сам расположен внутри каталога верхнего уровня, который называется root , но обозначается одной косой чертой / .
Перемещение по файловой системе
Часто вам может понадобиться изменить текущий рабочий каталог, чтобы получить доступ к другим подкаталогам и файлам.
Чтобы изменить текущий каталог , в linux используется команда cd (сокращение от change directory), за которой, в качестве аргумента, следует имя каталога, относительно текущего:
или абсолютный (полный) путь:
Чтобы вернуться на уровень выше, в родительскую директорию, можно в качестве аргумента передать команде cd две точки:
Чтобы вернуться в домашний каталог пользователя, нам не обязательно передавать полный путь к нему, вместо этого можно использовать короткую запись, передав в качестве аргумента символ «тильда»:
Чтобы перейти в корневой каталог:
Просмотр содержимого каталогов
Теперь, когда мы знаем, как перейти в нужный нам каталог и отобразить путь до него, пришло время разобраться, как просмотреть содержимое каталога . Чтобы это сделать, в linux используется команда ls (сокращение от list):
В ответ мы увидим список файлов и директорий:
addresses.txt Documents Downloads grades.txt
Чтобы посмотреть содержимое каталога, надо передать путь до него:
Чтобы вывести список всех файлов в подкаталогах, используйте флаг -R :
Так же в linux-команде ls можно передать дополнительные флаги. Например, чтобы вывести подробную информацию о содержимом каталога, такую как права доступа, дату последнего изменения, можно использовать команду:
Чтобы увидеть скрытые файлы и директории (обычно их имена начинаются с точки) нужно использовать флаг -a . Флаги можно комбинировать друг с другом, например:
Просмотр содержимого файлов
Для вывода содержимого файла в терминал, используется команда cat (сокращение от concatenate). В качестве аргумента ей необходимо передать имя файла в текущем каталоге или путь до него:
cat file1.txt
cat /home/demo/file2.txt
Поиск файлов
Иногда вам может понадобиться найти местоположение определенного файла. Поиск файла в linux легко можно сделать с помощью команд find или locate .
Команда find ищет файл в определенном месте и принимает два аргумента: путь до директории , в которой нужно произвести поиск, и имя файла, который нужно найти. Для того, чтобы поискать файл с именем file1.txt в домашней директории пользователя demo, команда будет выглядеть следующим образом:
find /home/demo -name file1.txt
Команда locate , как и команда find , выполняет поиск файлов, но принимает только один аргумент. Команда locate ищет все возможные файлы и каталоги с заданным именем в системе:
Основные операции с файлами и каталогами
Создание файла
Чтобы создать файл в linux , мы можем воспользоваться командой touch . Например, чтобы создать файл с именем file1.txt в домашней директории пользователя, введите в терминале команду:
Создание каталога
Для того, чтобы создать папку в linux , используется команда mkdir (сокращение от make directory). В качестве аргумента передайте имя директории или путь, по которому хотите ее создать:
Удаление файлов и каталогов
Удаление файла в linux осуществляется при помощи команды rm (сокращение от remove).
Для удаление каталога используется эта же команда rm , но с флагом -r :
rm /home/demo/file1.txt
rm -r /home/demo/Photos
Используйте эту команду с осторожностью, так как ее действие необратимо.
Перемещение и переименование
Для того, чтобы переместить, или переименовать файл в linux используется универсальная команда mv (сокращение от move).
В зависимости от того, как она используется, она может переименовывать файл или перемещать его из одного места в другое. Команда для перемещения файла будет выглядеть так:
mv file1.jpeg /home/demo/Photos/
Для переименования файла из file1.txt в file2.txt используется следующая запись:
Кроме того, вы можете одновременно перемещать и переименовывать файл, указав папку назначения и новое имя файла:
mv file1.txt /home/demo/Documents/file2.txt
Копирование
Команда cp (сокращение от copy), копирует файл из одного места в другое. В отличие от команды mv , используемой для перемещения, команда cp сохраняет исходный файл в его текущей директории и создает копию в другой директории . Команда для копирования файла с именем file1.txt в каталог /home/demo/Documents будет выглядеть так:
cp file1.txt /home/demo/Documents
cp /home/demo/Ptotos/photo1.jpeg /home/demo/Documents
Если вы хотите скопировать директорию, то необходимо использовать флаг -R :
cp -R /home/demo/tutorilas /home/demo/Documents/
Размер файлов и директорий
В linux размер папки можно узнать при помощи команды du (сокращенно от disk utility). Если ввести эту команду без аргументов, то она выведет размеры всех файлов внутри текущей директории . Обычно, в качестве аргумента ей передают путь до директории , размер которой необходимо узнать, и флаги -sh для более красивого и читаемого вывода:
Если мы хотим увидеть размер и состояние конкретного диска, то можно использовать команду df с флагом -h , и названием раздела, который хотим увидеть:
Отображение размера директории в конкретных единицах измерения
По умолчанию команда du отображает размер каталога в байтах. Если нам вдруг потребуется отображать размер файлов и каталогов в килобайтах или мегабайтах, используется эта же команда du , но к ней необходимо будет добавить флаг -k (килобайты) или -m (мегабайты).
Для того, чтобы установить отображение использования дискового пространства в килобайтах для нашей директории demo, введите:
В таком случае будет отображаться использование дискового пространства директорией, но не размер ее файлов.
Чтобы узнать размеры ее файлов, нам понадобится флаг -a .
Редактирование файлов
Для того, чтобы отредактировать файлы, можно воспользоваться встроенным в linux консольным редактором nano.
Чтобы открыть файл с именем file1.txt, введите:
После этого откроется окно с редактором, в котором вы можете приступить к редактированию.
Копирование и вставка
Для того чтобы вырезать строку и поместить ее в буфер обмена, переместите курсор на нужную строку и нажмите Ctrl+K.
Чтобы вставить строку из буфера, нажмите Ctrl+U.
Чтобы скопировать текст произвольной длины, сначала требуется его выделить. Для этого поместите курсор на начало текста, который планируется копировать, и нажмите Ctrl+6. Перемещайте курсор, текст будет выделяться.
Чтобы скопировать выделенный текст в буфер обмена, нажмите Alt+6.
Чтобы вырезать выделенный текст, нажмите Ctrl+K.
Поиск и замена
Для поиска используйте комбинацию клавиш Ctrl+W, затем введите поисковый запрос и нажмите Enter. Курсор переместится к первому найденному совпадению. Чтобы продолжить поиск до следующего совпадения, используйте комбинацию Alt+W.
Сохранение и выход из редактора
Если вы хотите сохранить текущие изменения в файле, нажмите комбинацию клавиш Ctrl+O. Если вы редактируете новый файл, вам будет предложено дать ему имя. Это сохранит текущие изменения, при этом nano останется открытым и вы сможете продолжить работу.
Если вы хотите выйти из редактора нажмите комбинацию клавиш Ctrl+X.
Как перемещать файлы и каталоги в Linux (команда mv)
Перемещение файлов и каталогов — одна из самых основных задач, которые вам часто приходится выполнять в системе Linux.
В этом руководстве мы объясним, как использовать команду mv для перемещения файлов и каталогов.
Как использовать команду mv
Команда mv (сокращение от move) используется для переименования и перемещения файлов и каталогов из одного места в другое. Синтаксис команды mv следующий:
mv [OPTIONS] SOURCE DESTINATION
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 спросит вас, хотите ли вы перезаписать файл:
mv: replace '/tmp/file1', overriding mode 0400 (r--------)?
Чтобы не получать подсказки, используйте параметры -f :
Эта опция особенно полезна, когда вам нужно перезаписать несколько файлов, доступных только для чтения.
Не перезаписывать существующие файлы
Параметр -n указывает mv никогда не перезаписывать существующие файлы:
Если существует file1 приведенная выше команда ничего не сделает. В противном случае он переместит файл в каталог /tmp .
Резервное копирование файлов
Если целевой файл существует, вы можете создать его резервную копию, используя параметр -b :
Файл резервной копии будет иметь то же имя, что и исходный файл, с добавленной к нему тильдой ( ~ ).
Используйте команду ls, чтобы убедиться, что резервная копия была создана:
Подробный вывод
Другой вариант, который может быть полезен, — это -v . Когда используется эта опция, команда печатает имя каждого перемещенного файла:
Выводы
Команда mv используется для перемещения и переименования файлов и каталогов.
Для получения дополнительных сведений о команде mv страницу руководства или введите в терминале man mv .
Новые пользователи Linux, которых пугает командная строка, могут использовать файловый менеджер с графическим интерфейсом для перемещения своих файлов.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.