когда я набираю ls, я не хочу видеть .o файлы, потому что каждый раз, когда я ls, он видит X.cpp Xh Xo, как мне не перечислить .o файлы?
2 ответа
2
BSD ls
OS X не поддерживает аргумент -I
присутствующий в GNU ls, для фильтрации типов файлов.
Вы можете запустить следующее выражение, которое возвращает все файлы в текущем каталоге, которые не имеют расширения .o
, и в противном случае печатает тот же формат, что и ls -l
:
find * -maxdepth 0 ! -name '*.o' -print0 | xargs -0 ls -dl
Вы можете создать для этого функцию в вашем ~/.zprofile
чтобы запустить ее, набрав lso <extension>
:
function lso {
find * -maxdepth 0 ! -name "*.$1" -print0 | xargs -0 ls -dl
}
Он не подходит в качестве полной замены ls
, так как не поддерживает аргументы.
Образец вывода:
$ ls -l
total 8
-rw-r--r-- 1 danielbeck staff 0 2 Sep 12:52 pi.c
-rw-r--r-- 1 danielbeck staff 0 2 Sep 12:52 pi.o
-rw-r--r-- 1 danielbeck staff 278 31 Aug 06:52 pi.py
-rw-r--r-- 1 danielbeck staff 0 2 Sep 12:52 pi.pyc
$ lso
-rw-r--r-- 1 danielbeck staff 0 2 Sep 12:52 pi.c
-rw-r--r-- 1 danielbeck staff 278 31 Aug 06:52 pi.py
-rw-r--r-- 1 danielbeck staff 0 2 Sep 12:52 pi.pyc
0
Если вы setopt extended_glob
, вы можете сделать что-то вроде ls -ld ^*.o
и, возможно, назначить это псевдониму по вашему выбору.