Команды управления файлами и папками в Linux

Admin Linux, Mac OS, VPS

Список полезные команд для управления папками в Linux системах. Рекомендации подходят в том числе и для операционной системы Mac OS.

Ниже приводится список команд для выполнения наиболее часто встречающихся задач.

Перемещение в директориях Linux

Перейти в корневую папку диска:

cd /

Перейти в конкретную папку:

cd /home/folder/

/home/folder — то место куда следует перейти

Посмотреть всё что внутри папки (посмотреть права):

ls -lh

Как установить редактор Midnight Commander

yum install mc

Для запуска редактора ввести:

mc

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

Более точная и подробная статья по поиску занятого места на диске.

Проверяем свободное место на всём диске:

df -h

Узнаём какие файлы хранятся в директории

ls

Список папок с занимаемыми размерами в корне сервера (сортировка директорий по алфавиту):

du -hs /*

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

ls -lSr |more

Показывает размер и имена директорий и файлов (сортировка по размеру). В примере сортировка по размеру директории var.

du -sk /var/* | sort -rn

Ещё одна команда (показывает в мб) сортирует по размеру (в данном случае сортировка каталога с логами):

du -k /var/log/* | sort -nr | cut -f2 | xargs -d '\n' du -sh

Создание папок в Linux

Создать папку с названием folder:

mkdir folder

Удаление файлов и папок

Обычное удаление файла:

rm /etc/file.php

Если с помощью обычного rm попробовать удалить папку в которой находятся файлы, появится ошибка. Для удаление папок используем другую команду:

rmdir backup

Добавляем атрибут -p для удаление пустых папок по всему пути. Будут удалены все три папки указанные ниже, если они не содержат файлов:

rmdir -p backup/one/two

Ошибка папки при удалении в Linux

Иногда при удалении папки в Linux пишется ошибка:

rmdir: не удалось удалить «название_папки»: Нет такого файла или каталога

При этом зайти в неё тоже не удаётся, пишется ровно противоположное:

-bash: cd: /название_папки: Нет такого файла или каталога

Также встречаются ошибки:

rm: невозможно удалить «/home/admin/web/public_html»: Это каталог
rmdir: не удалось удалить «/home/admin/web/public_html»: Каталог не пуст

Удалить эту капризную папку (без предупреждений) поможет следующая команда:

rm -rf backup

или так:

rm -rf /home/admin/web/public_html

где
-r – команда пройтись по всем папкам и файлам и попытаться удалить каждую из них
-f – удалить без подтверждения

Удалить всё внутри папки

Зайти внутрь папки:

cd folder

Удалить все в этой папке:

sudo rm -rf ./*

Удаление файлов из директории Linux без удаления самой папки

Удаляем всё содержимое из папки files, которая находится по этому пути – /home/user/files/. Специальные ключи в команде ускоряют удаление содержимого с минимальной нагрузкой на сервер.

find /home/user/files/ -mindepth 1 -a -print0 | xargs -n 100 -0 rm -rf

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

rm -v !("wp-config.php")

Удалит все файлы, кроме одного. Эта команда не удаляет папки.

Управление файлами в Linux

Создание пустого файла

touch file_name.txt

Просмотр содержимого файла:

cat file_name.txt

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

nano /etc/file.php

где /etc/file.php — путь к файлу.

Для редактирования файлов должен быть установлен редактор nano.

Копирование файла:

cp otkuda/file.php kuda/file.php

^ Находиться надо в родительской категории, где есть папки otkuda и kuda.

Копирование папки:

cp -r /откуда_копируем/копируемая_папка /куда_копируем/копируемая_папка

Копировании папки в текущей директории:

cp -r www www-old

Назначаем права доступа:

chmod 755 file.txt

Поиск файлов

Есть 2 основные команды для поиска файлов, это find и locate:

find / -name file.php
find ~ -name "имя файла" -print

Минус перед словом name означает, что не нужно выводить на экран всю процедуру поиска.

locate file.php

Замена текста и данных в файлах Linux

Для взаимодействия с текстом внутри файлов есть команда sed. Команд множество, но чаще всего может понадобится команда по замене определенного текста в конкретном файле.

Например:

sed 's/odin/dva/g' file.txt

Заменяет в файле file.txt все слова «odin» на слова «dva».

Иногда требуется раскомментировать какую-то строчку в файле и для этого не обязательно открывать файл и редактировать его. Достаточно знать данные в нём, которые нужно раскомментировать.

sed -i "s/^#znachenie/znachenie/g" /etc/file.conf

где «^» — означает начало строки, # — символ, отвечающий за разрешение/запрещение чтения команд определенного языка программирования в выполняющем для этого файле.

Как прервать выполнение команды

Когда вы запустили команду в терминале и хотите её прервать достаточно нажать:

Ctrl+Z

Права для юзеров

Как добавить пользователя в группу:

sudo adduser имя_пользователя название_группы

Удалить из группы:

deluser имя_пользователя название_группы

Как сделать симлинк

Сделать симлинк

ln -s /var/log/httpd/domains/domain.error.log domain.error.log

Сделать жесткую (обычную) ссылку:

ln /var/log/httpd/domains/domain.error.log domain.error.log

У сайта нет цели самоокупаться, поэтому на сайте нет рекламы. Но если вам пригодилась информация, можете лайкнуть страницу, оставить комментарий или отправить мне подарок на чашечку кофе.

Комментарии к статье “Команды управления файлами и папками в Linux” (3)

  • Андрей
    14.10.2021 в 19:08

    Здравствуйте.
    Как вывести текст, к примеру, первых трёх строк из файла родительской директории?
    Спасибо.

  • algri14
    03.09.2024 в 00:34

    Ошибка многих RU_ресурсов в том, что в командах используются латинские символы для всего, на этом сайте та же самая ошибка, хотя и не везде.
    Например:
    Правильно
    deluser имя_пользователя название_группы
    — здесь команда «deluser» дана на латинице, а «имя_пользователя» и «название_группы» правильно написали на кириллице, команда будет понятна даже «чайнику»
    Неправильно
    cd folder
    — здесь пример названия папки дали прямолинейно, новичок может принять её за часть команды
    надо было
    cd имя_папки
    Ведь вся эта информация больше нужна новичкам, которые могут спутать команду с именем собственным, т.е. названием, именем папки или именем пользователя увидев в команде слово «user»

    Админ, исправьте пожалуйста все подобные команды:
    cat file_name.txt
    на
    cat имя_файла.txt

    • Admin
      Автор записи
      03.11.2024 в 00:51

      То, что вы написали, конечно, понятнее тому, кто не знает английский. С другой стороны, без знания английского языка и базовых названий как тут, работа с linux обречена.

      Статья писалась до изобретения ChatGPT. Сейчас любая подобная информация избыточна :).

Добавить комментарий

Напишите свой комментарий, если вам есть что добавить/поправить/спросить по теме текущей статьи:
"Команды управления файлами и папками в Linux"