LinuxКак сделать

Как использовать команду ls для вывода списка файлов и каталогов в Linux

Окно терминала на ноутбуке с Linux.
Фатмавати Ахмад Заенури / Shutterstock

Мы используем команду Linux ls каждый день, не задумываясь об этом. Какая жалость. Обратите на это внимание, и вы найдете много полезных опций, включая те, которые вы должны добавить в свой арсенал командной строки.

ls Списки файлов и каталогов

Команда ls вероятно, является первой командой, с которой сталкивается большинство пользователей Linux. Те из нас, кто слоняется вокруг командной строки, используют ее изо дня в день, даже не задумываясь об этом. Это может объяснить, почему в этой команде есть нечто большее, чем понимают большинство пользователей. Мы перечисляем файлы с ним, чтобы увидеть, что находится в каталоге. Мы перечисляем файлы в длинном формате, когда хотим посмотреть разрешения для файла. Помимо этого, он получает мало внимания.

Команда ls является одной из тех команд с множеством опций. Возможно, это часть проблемы. Есть так много вариантов, как вы просеиваете их, чтобы найти полезные? И найдя их, как ты их помнишь?

Полезные перестановки команды ls с их строками параметров и параметров являются идеальными кандидатами для псевдонимов . Фактически, в большинстве дистрибутивов то, что вы считаете «голой» командой ls самом деле является псевдонимом. Помимо прочего, команда type может использоваться для показа основного определения псевдонимов . Давайте посмотрим на определение ls :

типа лс

введите ls в окне терминала

Параметры --color=auto включаются автоматически каждый раз, когда вы используете команду ls . Это то, что обеспечивает разные цвета для разных типов файлов в списках.

СВЯЗАННЫЕ: Как создать псевдонимы и функции оболочки в Linux

Простые списки ls

Каждый, кто провел некоторое время, используя терминал Linux, знает, что по умолчанию ls перечисляет файлы и каталоги в текущем каталоге.

  Ls 

ls в окне терминала

Если вы хотите, чтобы ваше объявление создавалось в одном столбце, используйте параметр -1 (один файл в строке):

  лс -1 

ls -1 в окне терминала

Мы обсудим это странно выглядящее имя файла в верхней части списка через минуту.

Использование ls в разных каталогах

Чтобы ls перечислил файлы в каталоге, отличном от текущего, передайте путь к каталогу ls в командной строке. Вы также можете передать более одного каталога в ls , и они будут перечислены один за другим. Здесь мы просим ls перечислить файлы в двух каталогах, один из которых называется «Справка», а другой — «gc_help».

  ls Help gc_help 

ls Help gc_help в окне терминала

Когда ls перечислил содержимое первого каталога, он перечисляет содержимое второго. Он печатает имя каждого каталога по мере их обработки:

Имя каталога, отображаемого с помощью ls до того, как содержимое появится в списке.

Использование шаблонов файлов

Чтобы выборочно перечислить набор файлов, используйте сопоставление с образцом. Знак вопроса « ? »Будет представлять любой отдельный символ, а звездочка« * »будет представлять любую строку символов. Чтобы вывести список файлов или каталогов, имена которых начинаются с «ip_», используйте этот формат:

  ls ip_ * 

ls ip_ * в окне терминала

Чтобы получить список файлов с расширениями «.c», используйте этот формат:

  ls * .c 

ls * .c в окне терминала

Вы также можете использовать ls с grep и использовать возможности сопоставления с образцом grep . Давайте посмотрим на любые файлы, в имени которых есть строка «_pin_»:

  ls |  grep _pin_ 

ls | grep _pin_ в окне терминала

Это почти то же самое, что использовать ls с двумя подстановочными знаками:

  ls |  grep _pin_ 
  ls * _pin_ * 

ls | grep _pin_ в окне терминала

Почему почти так же? Обратите внимание на разные макеты. grep выводит одно имя файла в формате строки.

Непечатаемые символы

Можно найти себя с именем файла, в имени которого есть непечатный или управляющий символ . Как правило, это может произойти, когда вы расширяете архив, который вы скачали из Интернета, или извлекаете git-репозиторий , и оригинальный автор допустил ошибку при создании файла, но не обнаружил его.

Наш странный файл является одним из них:

Имя файла с управляющим символом в окне терминала

Если мы посмотрим на это в файловом браузере и нажмем «F2», чтобы переименовать его, непечатные символы представлены странным символом.

Имя файла с символом управления в нем, в диалоговом окне переименования

Вы можете использовать опцию -b (escape), чтобы увидеть, что на самом деле содержит имя файла. Эта опция заставляет ls использовать escape-последовательности языка программирования C для представления управляющих символов.

  ls -ba * 

ls -b a * в окне терминала

Загадочный персонаж раскрывается как символ перевода строки, представленный в C как «\ n».

Игнорирование файлов

Чтобы исключить определенные файлы из списка, используйте параметр --hide . Предположим, вы не хотите видеть резервные файлы «.bak» в списке. Вы можете использовать эту команду:

  Ls 
  ls --hide = *. бак 

ls --hide = *. bak в окне терминала

Файлы «.bak» не включены во второй список.

Длинный листинг формата

Опция -l (длинный список) заставляет ls предоставлять подробную информацию о каждом файле.

  ls -l 

ls -l в окне терминала

Здесь много информации, поэтому давайте пройдемся по ней.

Первое, что показывает ls — это общий размер всех файлов в списке. Затем каждый файл или каталог отображается в отдельной строке.

Первый набор из десяти букв и тире — это тип файла и права доступа владельца, группы и других файлов.

Самый первый символ представляет тип файла. Это будет один из:

  • : обычный файл.
  • б : специальный файл блока.
  • c : специальный файл символов.
  • d : каталог.
  • л : символическая ссылка.
  • n : сетевой файл.
  • р : именованная труба.
  • s : сокет.

Следующие девять символов — это три группы по три символа, отображаемые последовательно. Каждая группа из трех представляет разрешения на чтение, запись и выполнение в указанном порядке. Если разрешение предоставлено, будет присутствовать r , w или x . Если разрешение не предоставлено, дефис - показывается.

Первый набор из трех символов — это права доступа для владельца файла. Второй набор из трех разрешений предназначен для членов группы, а последний набор из трех разрешений — для других.

Иногда разрешение на выполнение для владельца обозначается символом s . Это бит setuid . Если он присутствует, это означает, что файл выполняется с правами владельца файла, а не пользователя, выполняющего файл.

Разрешение на выполнение для группы также может быть s . Это бит setgid . Когда это применяется к файлу, это означает, что файл будет выполнен с привилегиями группы ower. При использовании с каталогом любые файлы, созданные внутри него, получат свои права доступа к группе из каталога, в котором они создаются, а не от пользователя, создавшего файл.

Разрешение на выполнение для других иногда может быть представлено символом t . Это липкий бит . Обычно применяется к каталогам. Если это установлено, независимо от того, какие права на запись и исполняемые файлы установлены для файлов в каталоге, только владелец файла, владелец каталога или пользователь root могут переименовывать или удалять файлы в каталоге.

Широко используемым битом является папка, такая как «/ tmp». Это доступно для записи всем пользователям на компьютере. Закрепленный бит в каталоге гарантирует, что пользователи — и процессы, запущенные пользователями — могут только переименовывать или удалять свои собственные временные файлы.

Мы можем видеть залипание в каталоге «/ tmp». Обратите внимание на использование опции -d (directory). Это заставляет ls сообщать подробности каталога. Без этой опции ls будет сообщать о файлах внутри каталога.

  ls -l -d / tmp 

ls -l -d / tmp в окне терминала

СВЯЗАННЫЕ: Как использовать команду chmod в Linux

Число, следующее за разрешениями, является количеством жестких ссылок на файл или каталог. Для файла это обычно один, но если создаются другие жесткие ссылки, это число будет увеличиваться. Каталог обычно содержит как минимум две жесткие ссылки. Один — это ссылка на себя, а другой — его запись в родительском каталоге.

Имя владельца и группы отображаются рядом. За ними следуют размер файла и дата последней модификации файла. Наконец, дается имя файла.

Удобочитаемые размеры файлов

Наличие размера файла в байтах не всегда удобно. Чтобы увидеть размеры файлов в наиболее подходящих единицах (килобайтах, мегабайтах и ​​т. Д.), Используйте параметр -h (удобочитаемый):

  ls -l -h 

ls -l -h в окне терминала

Отображение скрытых файлов

Чтобы увидеть скрытые файлы, используйте параметр -a (все):

  ls -l -a 

ls -l -a в окне терминала

Две записи «.» И «..» представляют текущий каталог и родительский каталог соответственно. Файл с именем .base_settings теперь виден впервые.

Опуская и .. из списков

Если вы не хотите, чтобы ваш список был загроможден записями «.» И «..», но вы хотите видеть скрытые файлы, используйте параметр -A (почти все):

  ls -l -A 

ls -l -A в окне терминала

Скрытый файл все еще находится в списке, но записи «.» И «..» подавляются.

Списки каталогов рекурсивно

Чтобы ls перечислил файлы во всех подкаталогах, используйте параметр -R (рекурсивный)

  ls -l -R 

ls -l -R в окне терминала

ls проходит по всему дереву каталогов ниже начального каталога и перечисляет файлы в каждом подкаталоге.

вывод из ls рекурсивного перечисления каталогов

Отображение UID и GID

Чтобы вместо имени пользователя и имени группы отображались идентификатор пользователя и идентификатор группы, используйте параметр -n (числовой uid и gid).

  ls -n 

ls -n в окне терминала

Сортировка списков

Вы можете отсортировать список по расширению, размеру файла или времени изменения. Эти параметры не обязательно должны использоваться с длинным форматом листинга, но обычно это имеет смысл. Если вы сортируете по размеру файла, имеет смысл увидеть размеры файлов в списке. Когда вы сортируете по типу расширения, формат длинного списка не так важен.

Для сортировки по расширению используйте опцию -X (сортировка по расширению).

  ls -X -1 

ls -X -1 в окне терминала

Каталоги перечисляются вначале (вообще без расширений), затем остальные следуют в алфавитном порядке, в соответствии с расширениями.

Для сортировки по размеру файла используйте параметр -S (сортировка по размеру файла).

  ls -l -h -S 

ls -l -h -S в окне терминала

Порядок сортировки по величине к наименьшему

Чтобы отсортировать список по времени изменения, используйте опцию -t (сортировка по времени изменения).

  ls -l -t 

ls -l -t в окне терминала

Список отсортирован по времени модификации.

Если время изменения файла находится в пределах текущего года, отображается информация о месяце, дне и времени. Если дата изменения не была в текущем году, отображается информация о месяце, дне и году.

Быстрый способ получить самые новые и самые старые файлы в каталоге — это использовать ls с командами head и tail .

Чтобы получить самый новый файл или каталог, используйте эту команду:

  ls -t |  голова -1 

Чтобы получить самый старый файл или каталог, используйте эту команду:

  ls -t |  хвост -1 

ls -t | голова -1 в окне терминала

Чтобы отменить порядок сортировки

Чтобы отменить любой порядок сортировки, используйте параметр -r (реверс).

  ls -l -h -S -r 

ls -l -h -S -r в окне терминала

Список теперь упорядочен от самого маленького файла до самого большого файла.

И есть еще

Зайдите на страницу man для ls , есть еще много вариантов . Некоторые из них удовлетворяют несколько непонятным сценариям использования, но время от времени вы будете рады узнать о них.

Вам нужно видеть временные метки файлов с максимальной точностью, которую может обеспечить Linux? Используйте полный рабочий день:

  ls - полный срок 

Возможно, вы хотите увидеть номер инода файлов? Используйте опцию inode:

  ls -i 

Вы работаете с монохромным дисплеем и хотите устранить риск перепутать файлы для каталогов и ссылок? Используйте параметр classify, и ls добавит один из них к каждой записи в списке:

  • / : Каталог.
  • @ : Символическая ссылка.
  • | : Именованная труба.
  • = : Сокет.
  • * : Исполняемые файлы
  ls -F 

Есть копать. Вы обнаружите, что ls — это богатая жила, и вы будете продолжать добывать драгоценные камни.

Похожие посты
Как сделать

Как получить возмещение за покупки в iTunes или App Store

Как сделать

Поверхностное перо не работает? Вот как это исправить

Как сделать

Как настроить и использовать Fire TV Recast

Как сделать

Как изменить рингтон по умолчанию на вашем iPhone