回答:
これはLinuxマシンで動作します。しかし、Windowsでも同様のことができると思います。
次のコマンドを使用して、無効またはアンインストールされたモジュールのリストを取得します。
drush pml --type=Module --status="disabled,not installed" --no-core
--pipe | paste -s -d,
このようなコンマ区切りのリストが表示されます
admin_toolbar,admin_toolbar_tools,features,features_ui,entity_browser,
entity_browser_example,config_update,content_types_full_export
アンインストールされたモジュールのみを削除する場合は、最初のクエリで無効オプションからステータスを削除できます。
アンインストールされたモジュールのコンマ区切りのリストを取得したら、次のようにそれをdrush pmiクエリに渡すことができます。
drush pmi --format=csv --fields=path
admin_toolbar,admin_toolbar_tools,features,features_ui,entity_browser,
entity_browser_example,config_update,content_types_full_export
あなたは出力を得るでしょう
modules/admin_toolbar
modules/admin_toolbar/admin_toolbar_tools
modules/features
modules/features/modules/features_ui
modules/entity_browser
modules/entity_browser/modules/example
modules/config_update
modules/features_modules/content_types_full_export
これを使用してフォルダーを安全に削除できます:)
これを使って:
drush pmi --fields=type,project,title,status,path --format=table|sort
これにより、5つの列を持つモジュールリストが得られます。
最初はプロジェクトのタイプです:モジュールまたはテーマ。
2つ目はモジュールプロジェクトです。たとえば、ビュー、logintoboggan、admin_menuなどです。
3つ目はインストールステータスです。有効(使用中)、無効(使用されていませんが、DBに情報をインストール)、インストールされていません(まだインストールされていないか、すでにアンインストールされています)。
4列目はモジュール名です。drupal.orgからダウンロードしたモジュールには、複数のモジュールを含めることができます(ダウンロードしたモジュールがプロジェクトで、内部のモジュールが実際のモジュールです)。
5番目の列は、モジュールへのパスです。
この情報を使用して、すべてのモジュールが「インストールされていない」状態にあるすべてのプロジェクト(2番目の列)を安全に削除できます。
たとえば、次のフラグメントリストを参照してください。
module job_scheduler Job Scheduler enabled sites/all/modules/contrib/job_scheduler
module job_scheduler Job Scheduler Trigger not installed sites/all/modules/contrib/job_scheduler/modules/job_scheduler_trigger
module jquery_update jQuery Update enabled sites/all/modules/contrib/jquery_update
module l10n_client Localization client enabled sites/all/modules/contrib/l10n_client
module l10n_update Localization update enabled sites/all/modules/contrib/l10n_update
module languageicons Language Icons enabled sites/all/modules/contrib/languageicons
module ldap LDAP Authentication not installed sites/all/modules/contrib/ldap/ldap_authentication
module ldap LDAP Authorization - Roles not installed sites/all/modules/contrib/ldap/ldap_authorization/ldap_authorization_drupal_role
module ldap LDAP Authorization not installed sites/all/modules/contrib/ldap/ldap_authorization
module ldap LDAP Authorization - OG not installed sites/all/modules/contrib/ldap/ldap_authorization/ldap_authorization_og
module ldap LDAP Feeds not installed sites/all/modules/contrib/ldap/ldap_feeds
module ldap LDAP Help not installed sites/all/modules/contrib/ldap/ldap_help
module ldap LDAP Query not installed sites/all/modules/contrib/ldap/ldap_query
module ldap LDAP Servers not installed sites/all/modules/contrib/ldap/ldap_servers
module ldap LDAP SSO not installed sites/all/modules/contrib/ldap/ldap_sso
module ldap LDAP Test Module not installed sites/all/modules/contrib/ldap/ldap_test
module ldap LDAP User Module not installed sites/all/modules/contrib/ldap/ldap_user
module ldap LDAP Views not installed sites/all/modules/contrib/ldap/ldap_views
module libraries Libraries enabled sites/all/modules/contrib/libraries
すべてのモジュールがインストールされていないが、モジュールの1つが有効になっているためジョブスケジューラではないため、ldapモジュールを安全に削除できます。
そのdrushコマンドをフィルタリングする方法について2つの提案があります。1つはパイプとgrepを使用する方法です。もう1つはオプションの引数です。
まず、drush pml(小文字の「I」ではなく小文字の「L」)が必要だと思います。
(1)パイプとGrep ステータスが「未インストール」のすべてを一覧表示するには、以下のコマンドを参照してください。以下は、サイトの状況をよりよく把握するのに役立ちます。たとえば、ここに何がありますが、私の開発ボックスに「インストールされていません」。
$ drush pml | grep 'Not installed' | grep -v Core
Administration Actions permissions (VBO) (actions_permissions) Module Not installed 7.x-3.2
BackgroundField BackgroundField (backgroundfield) Module Not installed 7.x-1.5
Chaos tool suite Better Jump Menus (jump_menu) Module Not installed 7.x-1.4
Chaos tool suite Chaos Tools (CTools) AJAX Example (ctools_ajax_sample) Module Not installed 7.x-1.6
Chaos tool suite Chaos Tools (CTools) Plugin Example (ctools_plugin_example) Module Not installed 7.x-1.6
Chaos tool suite Custom content panes (ctools_custom_content) Module Not installed 7.x-1.6
Chaos tool suite Custom rulesets (ctools_access_ruleset) Module Not installed 7.x-1.6
Chaos tool suite Page manager existing pages (pm_existing_pages) Module Not installed 7.x-1.4
Chaos tool suite Stylizer (stylizer) Module Not installed 7.x-1.6
Chaos tool suite Term Depth access (term_depth) Module Not installed 7.x-1.6
Chaos tool suite Views content panes (views_content) Module Not installed 7.x-1.6
個別に撮影した
drush pml \ # Shows table of modules/themes and their status
| grep 'Not installed' \ # Filters for any line WITH 'Not installed'
| grep -v Core # Filters OUT any line containing string 'Core'
あなたも次のことができると仮定すると:
$ drush pml | grep 'Enabled'
$ drush pml | grep 'Disabled'
(2)drush pmlのオプション引数を使用
また、drush pmlコマンドのさまざまな引数を使用して、これを少し変えることもできます。
$ drush help pml
Show a list of available extensions (modules and themes).
Options:
--core Filter out extensions that are not in drupal core.
--no-core Filter out extensions that are provided by drupal core.
--package Filter by project packages. You can use multiple comma separated values. (i.e. --package="Core
- required,Other").
--pipe Returns a whitespace delimited list of the names of the resulting extensions.
--status=<disabled> Filter by extension status. Choices: enabled, disabled and/or 'not installed'. You can use
multiple comma separated values. (i.e. --status="disabled,not installed").
--type=<module> Filter by extension type. Choices: module, theme.
たとえば、
$ drush pml --no-core --status="not installed" --type=module
Package Name Version
Administration Actions permissions (VBO) (actions_permissions) 7.x-3.2
BackgroundField BackgroundField (backgroundfield) 7.x-1.5
Chaos tool suite Better Jump Menus (jump_menu) 7.x-1.4
Chaos tool suite Chaos Tools (CTools) AJAX Example (ctools_ajax_sample) 7.x-1.6
***Note and caution:*** Always try this stuff on a development or vagrant box first. NEVER blindly do this to a production box.
DBをクエリすることもできます。
無効になっているがアンインストールされていないモジュールのリスト(コードベースから削除できません)
drush sqlq "select name from system where type = 'module' and status = 0 and schema_version NOT IN (0, -1)"
無効およびアンインストールされたモジュールのリスト(コードベースから削除できます)
drush sqlq "select name from system where type = 'module' and status = 0 and schema_version IN (0, -1)"
Unknown option: --status.
Drush 8.1.12でこれを行うとき