8 примеров расширенного использования команды ls в Linux

Linux

В Linux все должны быть знакомы с командой ls. Лян Сюй считает, что пока он инженер Linux, он будет неотделим от этой команды каждый день и будет использовать ее сотни раз в день. Однако в дополнение кls -lКроме того, какое расширенное использование ls вы знаете? Сегодня Лян Сюй представит 8 расширенных вариантов использования команды ls.

Если у нас есть такая папка, мы используем команду дерева для просмотра ее структуры каталогов:

img
img

Использование 1: Список сведений обо всех файлах и каталогах в каталоге /home/alvin/test_dir.

Заказ:

ls -lR /home/alvin/test_dir/

результат:

[alvin@VM_0_16_centos test_dir]$ ls -lR /home/alvin/test_dir/
/home/alvin/test_dir/:
total 28
-rw-rw-r-- 1 alvin alvin   37 Nov 18 09:12 atb_aux.c
-rw-rw-r-- 1 alvin alvin    8 Nov 18 09:12 atb_can.c
-rw-rw-r-- 1 alvin alvin   24 Nov 18 09:12 atb_orch.c
-rw-rw-r-- 1 alvin alvin    5 Nov 18 09:12 atb_ota.c
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 include
-rw-rw-r-- 1 alvin alvin    0 Nov 18 09:12 Makefile
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 output
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 src

/home/alvin/test_dir/include:
total 0
-rw-rw-r-- 1 alvin alvin 0 Nov 18 09:12 a.h
-rw-rw-r-- 1 alvin alvin 0 Nov 18 09:12 b.h
-rw-rw-r-- 1 alvin alvin 0 Nov 18 09:12 c.h

/home/alvin/test_dir/output:
total 0
-rwxrwxr-x 1 alvin alvin 0 Nov 18 09:12 app

/home/alvin/test_dir/src:
total 0
-rw-rw-r-- 1 alvin alvin 0 Nov 18 09:12 a.c
-rw-rw-r-- 1 alvin alvin 0 Nov 18 09:12 b.c
-rw-rw-r-- 1 alvin alvin 0 Nov 18 09:12 c.c

это здесь,-lОпции должны быть всем знакомы, а значит отображать результаты в виде списка. И для-RОпция, означающая рекурсивную обработку, будет обрабатывать все файлы и подкаталоги в указанном каталоге вместе.

Использование 2: Список сведений обо всех файлах, начинающихся с atb в каталоге /home/alvin/test_dir.

Заказ:

ls -l atb*

результат:

[alvin@VM_0_16_centos test_dir]$ ls -l atb*
-rw-rw-r-- 1 alvin alvin 37 Nov 18 09:12 atb_aux.c
-rw-rw-r-- 1 alvin alvin  8 Nov 18 09:12 atb_can.c
-rw-rw-r-- 1 alvin alvin 24 Nov 18 09:12 atb_orch.c
-rw-rw-r-- 1 alvin alvin  5 Nov 18 09:12 atb_ota.c

Использование 3: список только подкаталогов в каталоге

  • метод 1:

Заказ

ls -F /home/alvin/test_dir | grep /$

результат:

[alvin@VM_0_16_centos test_dir]$ ls -F /home/alvin/test_dir | grep /$
include/
output/
src/

в:-FОпция означает добавление символа к каждому имени файла, чтобы указать тип файла. "*": Указывает исполняемый обычный файл; "/": указывает каталог; "@": представляет собой символическую ссылку; "|": указывает FIFO; "=": указывает на сокет.

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

  • Способ 2:

Заказ:

ls -p /home/alvin/test_dir | grep /$

результат:

[alvin@VM_0_16_centos test_dir]$ ls -p | grep /$
include/
output/
src/

в:-pварианты с-FПараметры аналогичны, но к каждому имени файла добавляется символ, указывающий тип файла.

  • Способ 3:

Заказ:

ls -l /home/alvin/test_dir | grep "^d"

результат:

[alvin@VM_0_16_centos test_dir]$ ls -l /home/alvin/test_dir | grep "^d"
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 include
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 output
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 src

в:^dтакже является регулярным выражением, которое начинается сdначало.grep "^d"значит отфильтроватьdрезультат начала, в то время какls -lПеречисленные результаты, сначала, если даdЕсли это так, это означает, что файл является каталогом, поэтому вы можете отфильтровать подкаталоги.

  • Способ 4:

Заказ:

ls -d */

результат:

[alvin@VM_0_16_centos test_dir]$ ls -d */
include/  output/  src/

в:-dОпция означает отображение каталога как файла без отображения файлов под ним.

Использование 4: Список файлов в каталоге в хронологическом порядке, чем новее, тем позже.

Заказ:

ls -ltr

результат:

[alvin@VM_0_16_centos test_dir]$ ls -lrt
total 28
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 src
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 output
-rw-rw-r-- 1 alvin alvin    0 Nov 18 09:12 Makefile
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 include
-rw-rw-r-- 1 alvin alvin    5 Nov 18 09:12 atb_ota.c
-rw-rw-r-- 1 alvin alvin   24 Nov 18 09:12 atb_orch.c
-rw-rw-r-- 1 alvin alvin    8 Nov 18 09:12 atb_can.c
-rw-rw-r-- 1 alvin alvin   37 Nov 18 09:12 atb_aux.c

в:-tОпция указывает, что файлы сортируются по времени модификации, чем новее, тем первым.-rПараметр указывает, что результаты сортируются в обратном порядке, а их комбинация указывает на то, что время модификации сортируется так, что чем новее, тем позже.

Использование 5: Сортировка по размеру файла

Заказ:

ls -lhS

результат:

[alvin@VM_0_16_centos test_dir]$ ls -lhS
total 28K
drwxrwxr-x 2 alvin alvin 4.0K Nov 18 09:12 include
drwxrwxr-x 2 alvin alvin 4.0K Nov 18 09:12 output
drwxrwxr-x 2 alvin alvin 4.0K Nov 18 09:12 src
-rw-rw-r-- 1 alvin alvin   37 Nov 18 09:12 atb_aux.c
-rw-rw-r-- 1 alvin alvin   24 Nov 18 09:12 atb_orch.c
-rw-rw-r-- 1 alvin alvin    8 Nov 18 09:12 atb_can.c
-rw-rw-r-- 1 alvin alvin    5 Nov 18 09:12 atb_ota.c
-rw-rw-r-- 1 alvin alvin    0 Nov 18 09:12 Makefile

в:-hОпция указывает, что она отображается в читаемых опциях, иначе размер файла отображается в байтах по умолчанию, например: 4873 байта, вы знаете, сколько это? Добавлен-hСистема опций поможет вам преобразовать результат в k или другие единицы измерения.

-SОпция означает сортировку по размеру файла, чем больше файл, тем выше приоритет. Если вы хотите, чтобы самый маленький файл был первым, добавьте-rВарианты подойдут.

Использование 6: Подсчитайте количество файлов и каталогов в текущем каталоге

  • Файлы статистики:

Заказ:

ls -l | grep "^-" | wc -l

результат:

[alvin@VM_0_16_centos test_dir]$ ls -l | grep "^-" | wc -l
5

в:^-значит с-в начале, т.е. обычный файл,ls -l | grep "^-"Отфильтруйте общие файлы и используйтеwc -lПодсчитайте количество отфильтрованных обычных файлов.

  • Номер каталога статистики:

Заказ:

ls -l | grep "^d" | wc -l

результат:

[alvin@VM_0_16_centos test_dir]$ ls -l | grep "^d" | wc -l
3

в:^dзначит сdв начале каталог,ls -l | grep "^d"отфильтруйте каталог, затем используйтеwc -lПодсчитайте количество отфильтрованных каталогов.

Использование 7: Список абсолютных путей ко всем файлам

Заказ:

ls | sed "s:^:`pwd`/:"

результат:

[alvin@VM_0_16_centos test_dir]$ ls | sed "s:^:`pwd`/:"
/home/alvin/test_dir/atb_aux.c
/home/alvin/test_dir/atb_can.c
/home/alvin/test_dir/atb_orch.c
/home/alvin/test_dir/atb_ota.c
/home/alvin/test_dir/include
/home/alvin/test_dir/Makefile
/home/alvin/test_dir/output
/home/alvin/test_dir/src

в:sed "s:^:``pwd``/:"значит добавить в начало строкиpwd(то есть путь, по которому находится файл) в сочетании с именем файла образуют абсолютный путь.

Использование 8: список абсолютных путей ко всем файлам (включая скрытые файлы) в текущем каталоге без рекурсии к каталогу.

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

find $PWD -maxdepth 1 | xargs ls -ld

результат:

[alvin@VM_0_16_centos test_dir]$ find $PWD -maxdepth 1 | xargs ls -ld
drwxrwxr-x 5 alvin alvin 4096 Nov 18 17:30 /home/alvin/test_dir
-rw-rw-r-- 1 alvin alvin   37 Nov 18 09:12 /home/alvin/test_dir/atb_aux.c
-rw-rw-r-- 1 alvin alvin    8 Nov 18 09:12 /home/alvin/test_dir/atb_can.c
-rw-rw-r-- 1 alvin alvin   24 Nov 18 09:12 /home/alvin/test_dir/atb_orch.c
-rw-rw-r-- 1 alvin alvin    5 Nov 18 09:12 /home/alvin/test_dir/atb_ota.c
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 /home/alvin/test_dir/include
-rw-rw-r-- 1 alvin alvin    0 Nov 18 09:12 /home/alvin/test_dir/Makefile
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 /home/alvin/test_dir/output
drwxrwxr-x 2 alvin alvin 4096 Nov 18 09:12 /home/alvin/test_dir/src

в:find $PWD -maxdepth 1Ограничено текущим уровнем (то есть не рекурсивно), а затем передать результат поиска вls -ldВ качестве параметра все файлы в текущем каталоге будут заполнены путем.

Для более интересного контента, пожалуйста, обратите внимание на общедоступный номерХороший линукс, публичный ответ1024Бесплатный доступ к технической информации 5T, включая:Linux, C/C++, Python, Raspberry Pi, встроенный, Java, AI,так далее. Ответ в публичном аккаунтев группу, приглашаем вас присоединиться к экспертной группе по обмену технологиями Ruyun.

img