2016-09-07 6 views
0

findを使用して、インストールされているすべてのアプリケーションを一覧表示しようとしています。 find /Applications -name "*.app"。しかし、これは以下のようにリストを返す:find /Applications -name "*.app" -exec basename {} \;を使用してインストールされているすべてのアプリケーションの検索方法

/Applications/Firefox.app/Contents/MacOS/crashreporter.app 
/Applications/Firefox.app/Contents/MacOS/plugin-container.app 
/Applications/Firefox.app/Contents/MacOS/updater.app 

ことのようなリストを返します。

DVD Player.app 
FaceTime.app 
Firefox.app 

これは良いですが、私が列挙されたいことは、そのアプリケーションおよびディレクトリに格納されます。/Applications/Firefox.app

インストールされているすべてのアプリケーションを、アプリケーション自体の中のサブディレクトリも一覧表示せずに一覧表示するにはどうすればよいですか? -maxdepth 1は、 "再帰レベル"

+0

'find/Applications -name \ *。app | grep -v "\/Contents \ /" ' –

答えて

1

"に.appは二回記載されて"パスとしての詳細情報、オプションでXML形式の

system_profiler SPApplicationsDataType -xml 
1

は、-type dは、ディレクトリだけに検索を制限します名称

find /Applications -printf "%f\n"|grep "\.app" 
+0

これはうまくいくかもしれませんが、' find/Applications -maxdepth 1 -name '* .app "-type d | wc -l'は60個のアプリケーションしかインストールされていないのに対し、 'find/Applications -name" * .app "-exec basename {} \ | wc -l'は200以上のアプリケーションがインストールされていることを示します。 'find/Applications -maxdepth 3 -name" * .app "-type d | wc -l'onlyは96個のアプリケーションがインストールされていることを示しています。 '-maxdepth 4'では' Applications/Firefox.app/Contents/MacOS/crashreporter.app'のようなものを返します –

+0

あなたの質問を正しく理解すれば 'find/Applications -name" * .app "-exec basename {} \; | wc -l'は何か他のことをします - それはすべてのレベルに降りてパスのディレクトリ部分を取り除きます - 例えば 'find /Applications/Firefox.app -name" * .app "-exec basename {} \;' on myシステムは 'Firefox.app'、' crashreporter.app'、 'plugin-container.app'、' updater.app'を返します - あなたは「Firefox.app」だけに興味があると思います。 – ewcz

+0

ああ、はるかに多くのアプリケーションを説明します。私はそれがまだ 'Applications/Firefox.app/Contents/MacOS/crashreporter.app'のディレクトリを取り除いていたことを認識していませんでした。私が望むのは、あなたのソリューションが達成するディレクトリも同様にリストすることができることです。しかし、いくつかのアプリケーションを5レベル隠してしまえば、このソリューションを見つけることができませんでした。 –

0

の決勝での.appと

find /Applications -printf "%f\n"|grep "\.app" 

を試してみてくださいを制限しながら、あなたはここで

find /Applications -maxdepth 1 -name "*.app" -type d 

てみてください

0

これはさえサブディレクトリに、すべてのアプリケーションを見つける:

find     \ 
     /Applications \ 
     -iname "*.app" \ 
     -type d   \ 
| grep -v '\.app.*\.app' 

-type dは、アプリケーションが実際にディレクトリであるため、ディレクトリを探してを意味します。つまり、正規表現として\.app.*\.appに一致

grep -v手段のエントリに一致するフィルタリング...

はあなたを与えるシステムプロファイラ

system_profiler SPApplicationsDataType 

を掲載し

関連する問題