- Команда Ls в Linux (список файлов и каталогов)
- Как использовать команду ls
- Формат длинных списков
- Показать скрытые файлы
- Сортировка вывода
- Рекурсивный список подкаталогов
- Выводы
- Команды управления файлами и папками в Linux
- Перемещение в директориях Linux
- Просмотр файлов и папок в Linux
- Создание папок в Linux
- Удаление файлов и папок
- Ошибка папки при удалении в Linux
- Удалить всё внутри папки
- Удаление файлов из директории Linux без удаления самой папки
- Удалить все файлы кроме одного конкретного файла
- Управление файлами в Linux
- Поиск файлов
- Замена текста и данных в файлах Linux
- Как прервать выполнение команды
- Основы Linux от основателя Gentoo. Часть 1 (2/4): Управление файлами и директориями
- Использование команд Linux
- Знакомство с ls
- Развернутые списки директорий
- Смотрим на директории
- Рекурсивный и инодный списки
- Понятие инода
- mkdir
- touch
- cat и cp
- Об авторах
- Daniel Robbins
- Chris Houser
- Aron Griffis
Команда Ls в Linux (список файлов и каталогов)
ls — одна из основных команд, которую должен знать любой пользователь Linux.
Команда ls выводит список файлов и каталогов в файловой системе и показывает подробную информацию о них. Это часть пакета основных утилит GNU, который установлен во всех дистрибутивах Linux.
Эта статья покажет вам, как использовать команду ls, на практических примерах и подробных объяснениях наиболее распространенных параметров ls.
Как использовать команду ls
Синтаксис команды ls следующий:
При использовании без параметров и аргументов ls отображает список имен всех файлов в текущем рабочем каталоге :
Файлы перечислены в алфавитном порядке в столько столбцов, сколько может поместиться на вашем терминале:
Чтобы вывести список файлов в определенном каталоге, передайте путь к каталогу в качестве аргумента команде ls . Например, чтобы отобразить содержимое каталога /etc , введите:
Вы также можете передать несколько каталогов и файлов, разделенных пробелом:
Если пользователь, с которым вы вошли в систему, не имеет прав на чтение каталога, вы получите сообщение о том, что ls не может открыть каталог:
У команды ls есть несколько опций. В следующих разделах мы рассмотрим наиболее часто используемые варианты.
Формат длинных списков
По умолчанию вывод команды ls показывает только имена файлов и каталогов, что не очень информативно.
Параметр -l (нижний регистр L) указывает ls печатать файлы в формате длинного списка.
Когда используется формат длинного списка, вы можете увидеть следующую информацию о файле:
- Тип файла.
- Права доступа к файлу.
- Количество жестких ссылок на файл.
- Владелец файла.
- Файловая группа.
- Размер файла.
- Дата и время.
- Имя файла.
Давайте объясним самые важные столбцы вывода.
Первый символ показывает тип файла. В этом примере первый символ — , что указывает на обычный файл. Значения для других типов файлов следующие:
- — — Обычный файл.
- b — Заблокировать специальный файл.
- c — Символьный специальный файл.
- d — Справочник.
- l — символическая ссылка.
- n — Сетевой файл.
- p — ФИФО.
- s — Розетка.
Следующие девять символов показывают права доступа к файлу. Первые три символа предназначены для пользователя, следующие три — для группы, а последние три — для остальных. Вы можете изменить права доступа к файлу с помощью команды chmod . Символ разрешения может принимать следующие значения:
- r — Разрешение на чтение файла.
- w — Разрешение на запись в файл.
- x — Разрешение на выполнение файла.
- s — бит setgid .
- t — sticky бит.
В нашем примере rw-r—r— означает, что пользователь может читать и записывать файл, а группа и другие пользователи могут только читать файл. Цифра 1 после символов разрешения — это количество жестких ссылок на этот файл.
Следующие два поля root root показывают владельца файла и группу, за которыми следует размер файла ( 337 ), показанный в байтах. Используйте параметр -h если вы хотите печатать размеры в удобочитаемом формате. Вы можете изменить владельца файла с помощью команды chown .
Oct 4 11:31 — дата и время последнего изменения файла.
Последний столбец — это имя файла.
Показать скрытые файлы
По умолчанию команда ls не отображает скрытые файлы. В Linux скрытый файл — это любой файл, который начинается с точки ( . ).
Чтобы отобразить все файлы, включая скрытые, используйте параметр -a :
Сортировка вывода
Как мы уже упоминали, по умолчанию команда ls перечисляет файлы в алфавитном порядке.
Параметр —sort позволяет сортировать вывод по расширению, размеру, времени и версии:
- —sort=extension (или -X ) — отсортировать в алфавитном порядке по расширению.
- —sort=size (или -S ) — сортировать по размеру файла.
- —sort=time (или -t ) — сортировать по времени модификации.
- —sort=version (или -v ) — естественный вид номеров версий.
Если вы хотите получить результаты в обратном порядке сортировки, используйте параметр -r .
Например, чтобы отсортировать файлы в каталоге /var по времени модификации в обратном порядке, вы должны использовать:
Стоит отметить, что команда ls не показывает общее пространство, занятое содержимым каталога. Чтобы узнать размер каталога , используйте команду du .
Рекурсивный список подкаталогов
Параметр -R указывает команде ls рекурсивно отображать содержимое подкаталогов:
Выводы
Команда ls отображает информацию о файлах и каталогах.
Для получения дополнительной информации о ls посетите страницу GNU Coreutils или введите man ls в свой терминал.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Команды управления файлами и папками в Linux
Список полезные команд для управления папками в Linux системах. Рекомендации подходят в том числе и для операционной системы Mac OS.
Ниже приводится список команд для выполнения наиболее часто встречающихся задач.
Перемещение в директориях Linux
Перейти в корневую папку диска:
Перейти в конкретную папку:
/home/folder — то место куда следует перейти
Посмотреть всё что внутри папки (посмотреть права):
Как установить редактор Midnight Commander
Для запуска редактора ввести:
Просмотр файлов и папок в Linux
Более точная и подробная статья по поиску занятого места на диске.
Проверяем свободное место на всём диске:
Узнаём какие файлы хранятся в директории
Список папок с занимаемыми размерами в корне сервера (сортировка директорий по алфавиту):
Выводит список директорий и файлов построчно, сортируя их по возрастанию размера, а также показывает права доступа, размер файлов и дату изменения:
Показывает размер и имена директорий и файлов (сортировка по размеру). В примере сортировка по размеру директории var.
Ещё одна команда (показывает в мб) сортирует по размеру (в данном случае сортировка каталога с логами):
Создание папок в Linux
Создать папку с названием folder:
Удаление файлов и папок
Обычное удаление файла:
Если с помощью обычного rm попробовать удалить папку в которой находятся файлы, появится ошибка. Для удаление папок используем другую команду:
Добавляем атрибут -p для удаление пустых папок по всему пути. Будут удалены все три папки указанные ниже, если они не содержат файлов:
Ошибка папки при удалении в Linux
Иногда при удалении папки в Linux пишется ошибка:
При этом зайти в неё тоже не удаётся, пишется ровно противоположное:
Также встречаются ошибки:
Удалить эту капризную папку (без предупреждений) поможет следующая команда:
где
-r – команда пройтись по всем папкам и файлам и попытаться удалить каждую из них
-f – удалить без подтверждения
Удалить всё внутри папки
Зайти внутрь папки:
Удалить все в этой папке:
Удаление файлов из директории Linux без удаления самой папки
Удаляем всё содержимое из папки files, которая находится по этому пути – /home/user/files/. Специальные ключи в команде ускоряют удаление содержимого с минимальной нагрузкой на сервер.
Удалить все файлы кроме одного конкретного файла
Удалит все файлы, кроме одного. Эта команда не удаляет папки.
Управление файлами в Linux
Создание пустого файла
Просмотр содержимого файла:
где /etc/file.php — путь к файлу.
Для редактирования файлов должен быть установлен редактор nano.
^ Находиться надо в родительской категории, где есть папки otkuda и kuda.
Копировании папки в текущей директории:
Назначаем права доступа:
Поиск файлов
Есть 2 основные команды для поиска файлов, это find и locate:
-name «имя файла» -print
Минус перед словом name означает, что не нужно выводить на экран всю процедуру поиска.
Замена текста и данных в файлах Linux
Для взаимодействия с текстом внутри файлов есть команда sed. Команд множество, но чаще всего может понадобится команда по замене определенного текста в конкретном файле.
Заменяет в файле file.txt все слова «odin» на слова «dva».
Иногда требуется раскомментировать какую-то строчку в файле и для этого не обязательно открывать файл и редактировать его. Достаточно знать данные в нём, которые нужно раскомментировать.
где «^» — означает начало строки, # — символ, отвечающий за разрешение/запрещение чтения команд определенного языка программирования в выполняющем для этого файле.
Как прервать выполнение команды
Когда вы запустили команду в терминале и хотите её прервать достаточно нажать:
Источник
Основы Linux от основателя Gentoo. Часть 1 (2/4): Управление файлами и директориями
Продолжение перевода первой части руководства. Начало тут.
В данном отрывке рассмотрены команды работы с файловой системой и файлами, такие как ls, mkdir, touch, mv, cp, затронуто использование echo и cat. Рассказано про иноды файловой системы.
Использование команд Linux
Знакомство с ls
А сейчас, мы быстренько пройдемся по команде ls. Скорее всего вы уже хорошо знакомы с этой командой, и знаете, что набрав ls получите список содержимого текущей рабочей директории:
Указав опцию -a, вы можете увидеть полный список, включая скрытые файлы и директории, начинающиеся с «.». Как видно в следующем примере, ls -a выводит также особые связывающие директории «.» и «..»:
Развернутые списки директорий
Вы также можете задать одну и более директорий или файлов в командной строке с ls. Если вы укажите файл, то ls покажет вам только этот файл. А если зададите директорию, то ls выдаст ее содержимое. Опция -l очень удобна, когда необходимо посмотреть права доступа, владельца, время последнего изменения и размер в списке содержимого директории.
В следующем примере мы использовали опцию -l чтобы отобразить содержимое моей директории /usr:
Первая колонка показывает информацию о правах доступа для каждого элемента. Чуть позже я объясню, как её интерпретировать. Следующая колонка содержит числа ссылок на каждый элемент файловой системы, позже мы вернемся к этому. Третья и четвертая колонки — это список владельцев и групп, соответственно. Пятая колонка — размер объекта. Шестая — время последнего изменения (mtime) объекта. И наконец, последняя колонка с именами объектов. Если файлы являются символическими ссылками, то вы увидите стрелку -> и путь, куда указывает эта символическая ссылка.
Смотрим на директории
Иногда вы захотите взглянуть на директорию, а не внутрь нее. В этом случае вы можете указать опцию -d, которая скажет ls рассматривать любую директорию, как внутреннюю:
Рекурсивный и инодный списки
Так вы можете использовать -d чтобы смотреть на директорию, но также можно использовать -R для противоположного: не только лишь глянуть внутрь директории, но и рекурсивно посмотреть все директории с файлами внутри нее! Мы не включим в руководство никакого примера вывода для этой опции (поскольку обычно он очень объемный), но возможно вы захотите попробовать несколько команд ls -R и ls -Rl, чтобы почувствовать как это работает.
Наконец, опция -i может использоваться для отображения числа инодов для объектов в списке файловой системы:
Понятие инода
Каждому объекту файловой системы назначен уникальный индекс, называемый номером инода. Это может показаться банальным, но понятие инодов очень важно для понимания большинства операций в файловой системе. Рассмотрим например ссылки «.» и «..», которые появляются в каждой директории. Чтобы полностью понять, чем на самом деле является директория «..», мы сперва взглянем на номер инода у /usr/local:
$ ls -id /usr/local
5120 /usr/local
У директории /usr/local номер инода равен 5120. А теперь посмотрим номер инода у /usr/local/bin/..:
$ ls -id /usr/local/bin/..
5120 /usr/local/bin/..
Как видно, директория /usr/local/bin/.. имеет такой же номер, как у /usr/local! Посмотрим, как можно справиться с этим шокирующим откровением. В прошлом мы полагали, что /usr/local сама является директорией. Теперь же, мы обнаружили, что фактически директория — это инод с номером 5120, и нашли, по меньшей мере, два элемента (называемых «ссылками»), которые указывают на данный инод. И /usr/local, и /usr/local/bin/.. — ссылки на 5120-ый инод. Хотя этот инод и существует только в одном месте на диске, тем не менее на него может быть множество ссылок.
На самом деле, мы даже можем увидеть общее количество ссылок ведущих на этот, 5120 инод, используя команду ls -dl:
Если взглянуть на вторую колонку слева, то видно, что на директорию /usr/local (инод 5120) ссылаются восемь раз. На моей системе на этот инод ведут следующие пути:
/usr/local
/usr/local/.
/usr/local/bin/..
/usr/local/games/..
/usr/local/lib/..
/usr/local/sbin/..
/usr/local/share/..
/usr/local/src/..
mkdir
Давайте быстренько пройдемся по команде mkdir, которая используется для создания новых директорий. Следующий пример создает три новых директории, tic, tac, и toe, все внутри /tmp:
$ cd /tmp
$ mkdir tic tac toe
По умолчанию, команда mkdir не создает для вас родительские директории; весь путь вплоть до последнего (создаваемого) элемента должен существовать. Так, если вы захотите создать вложенные директории won/der/ful, вам придется выполнить три отдельные команды mkdir:
$ mkdir won/der/ful
mkdir: cannot create directory `won/der/ful’: No such file or directory
$ mkdir won
$ mkdir won/der
$ mkdir won/der/ful
Однако, у mkdir есть очень удобная опция -p, которая говорит mkdir создавать любые отсутствующие родительские директории, как можете увидеть тут:
$ mkdir -p easy/as/pie
В целом очень просто. Чтобы узнать больше о команде mkdir наберите man mkdir и прочитайте инструкцию. Это же касается почти всех команд, рассмотренных здесь (например man ls), исключая cd, которая встроена в bash.
touch
Сейчас мы собираемся окинуть взглядом команды cp и mv, используемые для копирования, переименования и перемещения файлов и директорий. Но начнем обзор воспользовавшись командой touch, чтобы создать файл в /tmp:
Команда touch обновляет «mtime» (время последней модификации — прим. пер.) файла, если тот существует (вспомните шестую колонку в выводе ls -l). Если файл не существует, то новый, пустой файл будет создан. Сейчас у вас должен быть файл /tmp/copyme с нулевым размером.
Теперь, когда файл существует, давайте добавим немного данных в него. Можно сделать это с помощью команды echo, которая принимает аргументы и печатает их на стандартный вывод. Сперва, команда echo сама по себе:
$ echo «firstfile»
firstfile
А сейчас, та же команда echo, но с перенаправлением вывода:
$ echo «firstfile» > copyme
Знак «больше» сообщает оболочке записывать вывод echo в файл по имени copyme. Этот файл будет создан, если не существовал, или перезаписан, если существует. Набрав ls -l, увидим, что файл copyme имеет размер в 10 байт, так как содержит слово firstfile и символ новой строки:
cat и cp
Чтобы вывести содержимое файла на терминал, используйте команду cat:
$ cat copyme
firstfile
Сейчас, мы можем воспользоваться основным вызовом команды cp для создания файла copiedme из оригинального copyme:
$ cp copyme copiedme
Ниже проверим, что это действительно разные файлы; у них отличаются номера инодов:
А сейчас давайте воспользуемся командой mv для переименования copiedme в movedme. Номер иноды останется прежний; однако, имя файла, указывающее на инод, изменится.
Номер инода у перемещаемого файла остается прежним до тех пор, пока файл назначения находится в той же файловой системе, что и исходный файл. Мы подробнее рассмотрим файловую систему в третьей части нашего руководства.
Пока мы рассказываем об mv, давайте посмотрим, как еще можно использовать эту команду. mv, помимо возможности переименовать файлы, позволяет перемещать один или более файлов в другое место в иерархии директорий. Например, чтобы переместить /var/tmp/myfile.txt в директорию /home/drobbins (которая является моей домашней), я наберу (а мог бы воспользоваться
$ mv /var/tmp/myfile.txt /home/drobbins
После этого myfile.txt будет перемещен в /home/drobbins/myfile.txt. И если /home/drobbins располагается в другой файловой системе, нежели /var/tmp, команда mv скопирует myfile.txt в новую файловую систему и удалит его из старой. Как вы уже могли догадаться, когда myfile.txt перемещается между файловыми системами, то myfile.txt на новом месте получает новый номер инода. Это все потому, что у каждой файловой системы свой независимый набор номеров инодов.
Мы также можем воспользоваться mv для перемещения нескольких файлов в одну директорию. К примеру, чтобы переместить myfile1.txt и myarticle3.txt в /home/drobbins, потребуется набрать:
$ mv /var/tmp/myfile1.txt /var/tmp/myarticle3.txt /home/drobbins
Об авторах
Daniel Robbins
Дэниэль Роббинс — основатель сообщества Gentoo и создатель операционной системы Gentoo Linux. Дэниэль проживает в Нью-Мехико со свой женой Мэри и двумя энергичными дочерьми. Он также основатель и глава Funtoo, написал множество технических статей для IBM developerWorks, Intel Developer Services и C/C++ Users Journal.
Chris Houser
Крис Хаусер был сторонником UNIX c 1994 года, когда присоединился к команде администраторов университета Тэйлора (Индиана, США), где получил степень бакалавра в компьютерных науках и математике. После он работал во множестве областей, включая веб-приложения, редактирование видео, драйвера для UNIX и криптографическую защиту. В настоящий момент работает в Sentry Data Systems. Крис также сделал вклад во множество свободных проектов, таких как Gentoo Linux и Clojure, стал соавтором книги The Joy of Clojure.
Aron Griffis
Эйрон Гриффис живет на территории Бостона, где провел последнее десятилетие работая в Hewlett-Packard над такими проектами, как сетевые UNIX-драйвера для Tru64, сертификация безопасности Linux, Xen и KVM виртуализация, и самое последнее — платформа HP ePrint. В свободное от программирования время Эйрон предпочитает размыщлять над проблемами программирования катаясь на своем велосипеде, жонглируя битами, или болея за бостонскую профессиональную бейсбольную команду «Красные Носки».
Источник