2012-06-26 26 views
8

Tôi đang cố gắng để làm như sau trên OSX:Làm thế nào để ls --ignore trên OSX

ls -lR --ignore *.app

Vì vậy mà tôi đệ quy có thể tìm kiếm thông qua tất cả các thư mục trừ cho các thư mục .app.

Tuy nhiên dường như dường như không có các tùy chọn --ignore hoặc --hide ở Darwin.

Có lẽ một kịch bản để đệ quy tìm kiếm một thư mục sâu sắc đối với một bộ nhất định và tôi không chắc chắn tôi không thể ống ls -lR qua bất cứ điều gì vì định dạng của các đầu ra:

./ROOT/Applications/Some_app: 
drwxr-xr-x 3 admin root 102 26 Jun 11:03 app-bundle.app #<- WANT THIS 
[email protected] 24 admin root 816 26 Jun 11:24 folder   #<- WANT THIS 

./ROOT/Applications/Some_app/app-bundle.app:     #<- DON'T WANT 
drwxr-xr-x 7 admin root 238 26 Jun 11:03 Contents   #<- DON'T WANT 
... 

Trả lời

7

Sử dụng find:

find . -ls -name '*.app' -prune 
+0

tìm !! _hangs head in shame_ hoạt động như một sự quyến rũ. Cảm ơn bạn (chờ sự chậm trễ của câu trả lời) – hoss

+0

lần lặp thứ hai của bạn tốt hơn nhiều. – hoss

+0

Hãy suy nghĩ về nó một số chi tiết, và nó có thể được thực hiện thậm chí đơn giản hơn. Luôn luôn -ls. Nếu đó là một ứng dụng, -prune. –

4

Trong bash, bạn có thể sử dụng hình cầu mở rộng để loại trừ mẫu.

shopt -s extglob # this must be on its own line 
echo !(*.app) # match everything except for the given pattern 

Nếu bạn có bash phiên bản 4 trở lên, bạn có thể sử dụng globstar để thực hiện điều này một cách đệ quy.

shopt -s globstar 
shopt -s extglob 
echo **/!(*.app) 
+0

hoạt động, cần một chút tình yêu awk nhưng, nó có thể được đệ quy? – hoss

+0

@hoss - chỉ trên bash v4 trở lên, sử dụng globstar. Thêm vào câu trả lời – jordanm

+1

Đó là một giải pháp rất đẹp và thanh lịch. – hoss

-1

Một cách khác là ống để grep:

ls | grep -v

+0

không chắc chắn điều này sẽ giải quyết các câu hỏi trong tầm tay của không muốn đi qua các thư mục .app trong một danh sách đệ quy. Nếu tôi sử dụng 'ls -R | grep -v ".app" 'Tôi kết thúc với * tất cả * tệp * ngoại trừ * cho thư mục .app nhưng bao gồm tất cả các tệp và thư mục con. – hoss

Các vấn đề liên quan