Команда ls Linux
Если вы часто используете терминал, то довольно часто возникает необходимость посмотреть содержимое той или иной папки. Автодополнение спасает во многих случаях, но если вы не знаете что искать и не хотите использовать файловый менеджер, то быстро посмотреть что находится в папке может быть очень полезно. Другое применение команды ls — посмотреть разрешения для файлов и папок.
Установка правильных прав и владельца файла имеет очень важное значение для работы различного программного обеспечения, например, того же самого веб-сервера. В этой статье будет рассмотрена команда ls linux, основные ее опции и возможности, а также примеры применения.
Команда ls linux
Как обычно, в таких статьях сначала нам нужно понять синтаксис команды, чтобы вы знали как правильно ее использовать. На самом деле, синтаксис очень прост, вы набираете саму команду, а после нее путь к папке, содержимое которой хотите посмотреть. Если вы запустите команду без пути, то она выдаст содержимое текущего каталога:
$ ls опции /путь/к/папке
Опции команды указывают как именно и в каком виде нужно выводить информацию на экран, а путь, это та папка, которую нужно отобразить. Рассмотрим основные опции утилиты:
- -a — отображать все файлы, включая скрытые, это те, перед именем которых стоит точка;
- -A — не отображать ссылку на текущую папку и корневую папку . и ..;
- —author — выводить создателя файла в режиме подробного списка;
- -b — выводить Escape последовательности вместо непечатаемых символов;
- —block-size — выводить размер каталога или файла в определенной единице измерения, например, мегабайтах, гигабайтах или килобайтах;
- -B — не выводить резервные копии, их имена начинаются с ~;
- -c — сортировать файлы по времени модификации или создания, сначала будут выведены новые файлы;
- -C — выводить колонками;
- —color — включить цветной режим вывода, автоматически активирована во многих дистрибутивах;
- -d — выводить только директории, без их содержимого, полезно при рекурсивном выводе;
- -D — использовать режим вывода, совместимый с Emacs;
- -f — не сортировать;
- -F — показывать тип объекта, к каждому объекту будет добавлен один из специализированных символов */=>@|;
- —full-time — показывать подробную информацию, плюс вся информация о времени в формате ISO;
- -g — показывать подробную информацию, но кроме владельца файла;
- —group-directories-first — сначала отображать директории, а уже потом файлы;
- -G — не выводить имена групп;
- -h — выводить размеры папок в удобном для чтения формате;
- -H — открывать символические ссылки при рекурсивном использовании;
- —hide — не отображать файлы, которые начинаются с указанного символа;
- -i — отображать номер индекса inode, в которой хранится этот файл;
- -l — выводить подробный список, в котором будет отображаться владелец, группа, дата создания, размер и другие параметры;
- -L — для символических ссылок отображать информацию о файле, на который они ссылаются;
- -m — разделять элементы списка запятой;
- -n — выводить UID и GID вместо имени и группы пользователя;
- -N — выводить имена как есть, не обрабатывать контролирующие последовательности;
- -Q — брать имена папок и файлов в кавычки;
- -r — обратный порядок сортировки;
- -R — рекурсивно отображать содержимое поддиректорий;
- -s — выводить размер файла в блоках;
- -S — сортировать по размеру, сначала большие;
- -t — сортировать по времени последней модификации;
- -u — сортировать по времени последнего доступа;
- -U — не сортировать;
- -X — сортировать по алфавиту;
- -Z — отображать информацию о расширениях SELinux;
- -1 — отображать один файл на одну строку.
Это были все основные параметры команды ls, которые нам может когда-либо понадобиться использовать. Их очень много, но на деле будут нужны только некоторые из них, вы их быстро запомните, а все остальные сможете всегда найти в этой статье или на странице справки man ls. А теперь давайте рассмотрим несколько примеров использования команды ls linux.
Использование ls в Linux
Как вы уже поняли, ls — это сокращение от list, эта команда представляет из себя аналог команды dir для Linux. Самый простой способ использовать команду, запустить ее без параметров и посмотреть содержимое текущей папки:
Чтобы посмотреть список файлов в папке linux для точно заданной папки, вам нужно указать путь к ней. Например, смотрим содержимое корневой папки:
По умолчанию включен цветной вывод, поэтому вы видите столько различных цветов. Например, исполняемые файлы обозначаются салатовым, а ссылки голубым. Теперь посмотрим содержимое домашней папки снова, только на этот раз в виде списка с максимальным количеством информации:
Тут вывод уже разделен на отдельные колонки, в первой колонке указаны права доступа к файлу в формате владелец группа остальные. Следующая колонка — это тип файла или папки, дальше владелец и группа, затем размер, дата создания и последний параметр — имя. Если вы еще хотите знать кто создал файл, можно использовать опцию author:
Колонка создателя будет добавлена после группы. Дальше размер. Он выводится в байтах, килобайтах или еще в чем-то и нам не совсем понятно что там происходит, поэтому добавьте опцию -h чтобы выводить размер в более удобном виде:
Для папок размер выводится не сумой всех размеров всех файлов, а всего лишь то место, которое занимает сама папка, поэтому давайте посмотрим пример с файлами:
Если вы хотите видеть скрытые файлы, а в домашней папке их просто море, то используйте опцию -a:
Или смотрим скрытые файлы без ссылок на текущую и родительскую папку:
Теперь нас будет интересовать сортировка. Сначала отсортируем файлы по размеру:
Обратите внимание, что файлы расположены от большего к меньшему. Теперь мы можем включить обратный порядок:
С помощью опции -r мы вывели файлы в обратном порядке. Теперь отсортируем по алфавиту:
Или сортируем по времени последней модификации:
Обратите внимание на колонку времени, действительно, самые новые файлы будут вверху списка. Если вы хотите посмотреть какие метки SELinux присвоены файлу, необходимо использовать опцию -Z:
Но это возможно только в системах, где установлена надстройка SELinux. Если вы хотите рекурсивно вывести содержимое всех папок, используйте опцию -R:
Если же вам нужно список папок и файлов в директории через запятую, что можно использовать -m:
Выводы
Как видите, команда ls linux достаточно сложная, но вам будет достаточно только несколько основных ее функций. А в плане — «Просто посмотреть что делается в папке», эта команда очень проста. Если у вас остались вопросы, спрашивайте в комментариях!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
How can I get information about a file or folder on a Linux system?
I need to get detailed information of certain file or folder, such as chmod, changed date, which user. How can I do this?
I think some malicious script changed my php file chmod settings so i need to know details of that to increase security
2 Answers 2
You can try to use inotifywait
inotifywait -e attrib -m the_folder_to_watch
Where -e is the event to monitor, -m is monitor continuously.
There is no way to do this (that I know of, I could be corrected and learn something as well) unless you’ve installed a package to handle this. Meaning, if you didn’t plan ahead and monitor a file, there is no way to get this information. All you’ll be able to get from the file is the basic information that the stat cmd shows you, which wont show you what user altered a file.
That being said, in the future there are packages like audit that help you handle this and after you set a file to be audited, a simple ausearch -f would allow you to see this type of information. You could also use something like aide — which I personally like.
You must log in to answer this question.
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.14.43533
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.