13

私はOSXで次のことをしようとしています:

ls -lR --ignore *.app

.appフォルダーを除くすべてのフォルダーを再帰的に検索できるようにします。

しかし、ダーウィンには選択肢が--ignoreないようです。--hide

ls -lRおそらく、特定のセットを1つのフォルダーの深さで再帰的に検索するスクリプトであり、出力の形式が原因で何もパイプできないかどうかはわかりません。

./ROOT/Applications/Some_app:
drwxr-xr-x   3 admin  root  102 26 Jun 11:03 app-bundle.app  #<- WANT THIS
drwxr-xr-x@ 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
...
4

3 に答える 3

11

使用find

find . -ls -name '*.app' -prune
于 2012-06-26T18:38:37.810 に答える
5

bashでは、拡張グロブを使用してパターンを除外できます。

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

bashバージョン4以降を使用している場合は、globstarを使用してこれを再帰的に実行できます。

shopt -s globstar
shopt -s extglob 
echo **/!(*.app) 
于 2012-06-26T18:42:23.863 に答える
1

別の方法は、grepにパイプすることです。

ls | grep -v

于 2017-05-09T08:47:53.193 に答える