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