

{"id":109323,"date":"2022-05-24T09:00:58","date_gmt":"2022-05-24T03:30:58","guid":{"rendered":"https:\/\/data-flair.training\/blogs\/?p=109323"},"modified":"2022-05-24T09:45:03","modified_gmt":"2022-05-24T04:15:03","slug":"modprobe-command-in-linux","status":"publish","type":"post","link":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/","title":{"rendered":"Modprobe Command in Linux with Examples"},"content":{"rendered":"<p>In this article, you will learn what is modprobe command in Linux. We will look into the uses of modprobe, the syntax of the modprobe command, and the different types of options that are used with the modprobe. In the end, we will also be looking into some practical examples in the terminal using the modprobe command.\u2019<\/p>\n<h3>What is modprobe?<\/h3>\n<p>Modprobe is a command-line-based utility in Linux based operating system that helps in removing and adding modules from the kernel. This utility was written by Rusty Russel and is used to add a loadable module into the Linux kernel or remove a module from the Linux kernel.<\/p>\n<p>We all know that the Linux kernel is the sole heart of Linux-based operating systems as it acts as a mediator between the hardware and the software. The kernel has a modular design.<\/p>\n<p>A kernel module, or most commonly called \u2018driver\u2019 is a piece of code that extends or improves the kernel\u2019s functionality. Modules are of 2 types, either built-in modules or laudable modules.<\/p>\n<p>Loadable modules can be loaded and unloaded into the kernel, without rebooting the system. This is precisely where modprobe comes into the picture as it helps us load (and unload) a module into the kernel manually.<\/p>\n<p>Now a doubt may arise as to where are these loadable modules? Well, the modules are stored in the \u201c\/lib\/modules\/&lt;kernel version&gt;\u201d directory on your computer. Only those users with administrative privileges can manage kernel modules.<\/p>\n<h3>Syntax of the modprobe command<\/h3>\n<p>Using the modprobe command, we can load or unload either a single module or multiple modules. The general syntax for using modprobe is:<\/p>\n<p>sudo modprobe &lt;options&gt; &lt;module name&gt;<\/p>\n<p>If you want to work with multiple modules, you use the option \u201c-a\u201d which stands for \u201c-all\u201d and specify the names of the multiple modules using the following syntax:<\/p>\n<p>sudo modprobe &lt;options&gt; -a &lt;module name 1&gt; &lt;module name 2&gt;<\/p>\n<h3>Options used with the modprobe command<\/h3>\n<p>When we speak of the options used with the modprobe command, there are generally 3 types of options used with it:<\/p>\n<p>1. Management options<\/p>\n<p>2. Query options<\/p>\n<p>3. General option<\/p>\n<p>Let us take a closer look at each of the option type used with the modprobe command.<\/p>\n<h4>1. Modprobe Management options<\/h4>\n<p>Management options are the options that enable different module handling situations when inserting or removing modules using the modprobe command. Let us take a look at the different management options available:<\/p>\n<h5>a. -a<\/h5>\n<p>This option enables multiple modules to be inserted or removed at the same time. You can also write this option as \u201c&#8211;all\u201d.<\/p>\n<h5>b. -r<\/h5>\n<p>This option removes a module. You can also write this option as \u201c&#8211;remove\u201d.<\/p>\n<h5>c. &#8211;remove-dependencies<\/h5>\n<p>This option removes dependency modules.<\/p>\n<h5>d. -R<\/h5>\n<p>This option looks up and prints all the module names matching the alias. You can also write this option as \u201c&#8211;resolve-alias\u201d.<\/p>\n<h5>e. &#8211;first-time<\/h5>\n<p>This option prints an error for already inserted or removed modules.<\/p>\n<h5>f. -i<\/h5>\n<p>This option ignores the install\/removes commands written in the module when inserting\/removing a module. You can also write this option as \u201c&#8211;ignore-install\u201d or \u201c&#8211;ignore-remove\u201d.<\/p>\n<h5>g. -b<\/h5>\n<p>This option blacklist resolves aliases. Blacklisted modules don\u2019t get automatically loaded. You can also write this option as \u201c&#8211;use-blacklist\u201d<\/p>\n<h5>h. -f<\/h5>\n<p>This option forces module removal or insertion when version errors appear. You can also write this option as \u201c&#8211;force\u201d<\/p>\n<h5>g. &#8211;force-modversion<\/h5>\n<p>This option ignores the version of the module during insertion or removal of the module.<\/p>\n<h5>h. &#8211;force-vermagic<\/h5>\n<p>This option ignores the module version magic during insertion or removal of a module.<\/p>\n<h4>2. Modprobe Query options<\/h4>\n<p>The query options show information about configuration and dependencies. Let us take a look at all of the query options available:<\/p>\n<h5>a. -D<\/h5>\n<p>This option lists the modules with the dependency files if there are any. These dependencies that install along with the module have the prefix \u2018install\u2019. You can also write this option as \u201c&#8211;show-depends\u201d.<\/p>\n<h5>b. -C<\/h5>\n<p>This option prints the current configuration. You can also write this option as \u201c&#8211;showconfig\u201d or \u201c&#8211;show-config\u201d.<\/p>\n<h5>c. &#8211;dump-modversions<\/h5>\n<p>This option dumps the module version dependencies. You can also write this option as \u201c&#8211;show-modversions\u201d.<\/p>\n<h4>3. Modprobe General options<\/h4>\n<p>The general options help us configure the output options, module locations, and versions of the modules. Let us look into the different general options available:<\/p>\n<h5>a. -n<\/h5>\n<p>This option prints the output without executing insertion or removal commands. You can also write this option as \u201c&#8211;show\u201d or \u201c&#8211;dry-run\u201d.<\/p>\n<h5>b. -C<\/h5>\n<p>This option overrides the default configuration dependency. You can also write this option as \u201c&#8211;config=&lt;file name&gt;\u201d.<\/p>\n<h5>c. -d<\/h5>\n<p>This option uses the directory you specified as filesystem root for \/lib\/modules. You can also write this option as \u201c&#8211;dirname=&lt;directory&gt;\u201d.<\/p>\n<h5>d. -S<\/h5>\n<p>This option uses a specific kernel version you specify instead of using the uname. You can also write this option as \u201c&#8211;set-version=&lt;version&gt;\u201d.<\/p>\n<h5>e. -s<\/h5>\n<p>This option prints the error messages through Syslog instead of standard error, which is denoted by stderr. When the standard error is unavailable, the error gets printed to Syslog automatically. You can also write this option as \u201c&#8211;syslog\u201d.<\/p>\n<h5>f. -q<\/h5>\n<p>This option disables the display of error messages. You can also write this option as \u201c&#8211;quiet\u201d.<\/p>\n<h5>g. -v<\/h5>\n<p>This option provides a verbose for a better understanding of what is happening. You can also write this option as \u201c&#8211;verbose\u201d<\/p>\n<h5>h. -V<\/h5>\n<p>This option displays the modprobe version you currently have. You can also write this option as \u201c&#8211;version\u201d<\/p>\n<h5>i. -h<\/h5>\n<p>This option shows the help message with all the options, information, and commands regarding modprobe. You can also write this option as \u201c&#8211;help\u201d.<\/p>\n<p>Now that you know how to use the modprobe command as we have see the syntax and the different options, let us take a look at some practical examples like inerting and removing modules.<\/p>\n<h3>Finding available modules<\/h3>\n<p>Before we add or remove modules, we need to look at the modules that are in the computer, so that we can choose which module to add. As discussed above, the modules are present in the \u201c\/lib\/modules\/&lt;kernel version&gt;\u201d directory.<\/p>\n<p>To find these modules we are going to use the find command as below:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">find \/lib\/modules\/$(unam -r) -type f -name \u2018*.ko\u2019 | more<\/pre>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/finding-available-modules.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-109527\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/finding-available-modules.webp\" alt=\"finding available modules\" width=\"1174\" height=\"775\" \/><\/a><\/p>\n<h3>Adding modules into the kernel<\/h3>\n<p>Let us now add a module into the kernel using the syntax<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">\u201csudo modprobe &lt;module name&gt;\u201d<\/pre>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/adding-modules-into-the-kernel.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-109526\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/adding-modules-into-the-kernel.webp\" alt=\"adding modules into the kernel\" width=\"1011\" height=\"97\" \/><\/a><\/p>\n<h3>Checking if module is added to the kernel<\/h3>\n<p>Now that we have added our module into the kernel, we can now check if it has been successfully added into the kernel or not using the option \u201c&#8211;first-time\u201d.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/checking-if-the-module-is-added-to-the-kernel.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-109528\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/checking-if-the-module-is-added-to-the-kernel.webp\" alt=\"checking if the module is added to the kernel\" width=\"1174\" height=\"104\" \/><\/a><\/p>\n<p>You also use this option to check if a module is already added to the kernel before reading it agin.<\/p>\n<h3>Finding the module using lsmod<\/h3>\n<p>You can also check if the module is in the active module loaded list. We can combine grep, pipe and lsmode like this:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">lsmod | grep &lt;module name&gt;<\/pre>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/finding-the-module-using-lsmod.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-109529\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/finding-the-module-using-lsmod.webp\" alt=\"finding the module using lsmod\" width=\"734\" height=\"107\" \/><\/a><\/p>\n<h3>Removing a module from the kernel<\/h3>\n<p>To remove a module from the kernel, use the option \u201c-r\u201d like this:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">sudo modprobe -r soundcore<\/pre>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/removing-a-module-from-the-kernel.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-109530\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/removing-a-module-from-the-kernel.webp\" alt=\"removing a module from the kernel\" width=\"961\" height=\"44\" \/><\/a><\/p>\n<h3>Checking if module has been succedully removed<\/h3>\n<p>Now that we have removed our module from the kernel, we can now check if it has been successfully removed or not by using the option \u201c&#8211;first-time\u201d.<\/p>\n<p><a href=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/checking-if-module-has-been-succedully-removed.webp\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-109531\" src=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/05\/checking-if-module-has-been-succedully-removed.webp\" alt=\"checking if module has been successfully removed\" width=\"1208\" height=\"45\" \/><\/a><\/p>\n<h3>Summary<\/h3>\n<p>As you have seen, Linux modprobe tool simplifies the process of adding and removing modules without rebooting the system. Research befor the insertion and removal of modules to avoid kernel promlesm, because sometimes you may add unwanted modules or remove important ones.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In this article, you will learn what is modprobe command in Linux. We will look into the uses of modprobe, the syntax of the modprobe command, and the different types of options that are&#46;&#46;&#46;<\/p>\n","protected":false},"author":5,"featured_media":109524,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[35],"tags":[26898,26899],"class_list":["post-109323","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-linux","tag-linux-modprobe","tag-modprobe-command"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.8 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Modprobe Command in Linux with Examples - DataFlair<\/title>\n<meta name=\"description\" content=\"Learn what Linux modprobe is. See modprobe uses, syntax and different types of options that are used with the modprobe with examples.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Modprobe Command in Linux with Examples - DataFlair\" \/>\n<meta property=\"og:description\" content=\"Learn what Linux modprobe is. See modprobe uses, syntax and different types of options that are used with the modprobe with examples.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/\" \/>\n<meta property=\"og:site_name\" content=\"DataFlair\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/DataFlairWS\/\" \/>\n<meta property=\"article:published_time\" content=\"2022-05-24T03:30:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-05-24T04:15:03+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/04\/modprobe-in-linux.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"628\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"DataFlair Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:site\" content=\"@DataFlairWS\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"DataFlair Team\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Modprobe Command in Linux with Examples - DataFlair","description":"Learn what Linux modprobe is. See modprobe uses, syntax and different types of options that are used with the modprobe with examples.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/","og_locale":"en_US","og_type":"article","og_title":"Modprobe Command in Linux with Examples - DataFlair","og_description":"Learn what Linux modprobe is. See modprobe uses, syntax and different types of options that are used with the modprobe with examples.","og_url":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/","og_site_name":"DataFlair","article_publisher":"https:\/\/www.facebook.com\/DataFlairWS\/","article_published_time":"2022-05-24T03:30:58+00:00","article_modified_time":"2022-05-24T04:15:03+00:00","og_image":[{"width":1200,"height":628,"url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/04\/modprobe-in-linux.webp","type":"image\/webp"}],"author":"DataFlair Team","twitter_card":"summary_large_image","twitter_creator":"@DataFlairWS","twitter_site":"@DataFlairWS","twitter_misc":{"Written by":"DataFlair Team","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/#article","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/"},"author":{"name":"DataFlair Team","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823"},"headline":"Modprobe Command in Linux with Examples","datePublished":"2022-05-24T03:30:58+00:00","dateModified":"2022-05-24T04:15:03+00:00","mainEntityOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/"},"wordCount":1237,"commentCount":0,"publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/04\/modprobe-in-linux.webp","keywords":["Linux modprobe","modprobe command"],"articleSection":["Linux Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/","url":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/","name":"Modprobe Command in Linux with Examples - DataFlair","isPartOf":{"@id":"https:\/\/data-flair.training\/blogs\/#website"},"primaryImageOfPage":{"@id":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/#primaryimage"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/#primaryimage"},"thumbnailUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/04\/modprobe-in-linux.webp","datePublished":"2022-05-24T03:30:58+00:00","dateModified":"2022-05-24T04:15:03+00:00","description":"Learn what Linux modprobe is. See modprobe uses, syntax and different types of options that are used with the modprobe with examples.","breadcrumb":{"@id":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/#primaryimage","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/04\/modprobe-in-linux.webp","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2022\/04\/modprobe-in-linux.webp","width":1200,"height":628,"caption":"modprobe in linux"},{"@type":"BreadcrumbList","@id":"https:\/\/data-flair.training\/blogs\/modprobe-command-in-linux\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog Home","item":"https:\/\/data-flair.training\/blogs\/"},{"@type":"ListItem","position":2,"name":"Linux Tutorials","item":"https:\/\/data-flair.training\/blogs\/category\/linux\/"},{"@type":"ListItem","position":3,"name":"Modprobe Command in Linux with Examples"}]},{"@type":"WebSite","@id":"https:\/\/data-flair.training\/blogs\/#website","url":"https:\/\/data-flair.training\/blogs\/","name":"DataFlair","description":"Learn Today. Lead Tomorrow.","publisher":{"@id":"https:\/\/data-flair.training\/blogs\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/data-flair.training\/blogs\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/data-flair.training\/blogs\/#organization","name":"DataFlair","url":"https:\/\/data-flair.training\/blogs\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/","url":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","contentUrl":"https:\/\/data-flair.training\/blogs\/wp-content\/uploads\/sites\/2\/2016\/07\/Data-Flair.png","width":106,"height":48,"caption":"DataFlair"},"image":{"@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/DataFlairWS\/","https:\/\/x.com\/DataFlairWS","https:\/\/www.linkedin.com\/company\/dataflair-web-services-pvt-ltd\/","https:\/\/www.youtube.com\/user\/DataFlairWS"]},{"@type":"Person","@id":"https:\/\/data-flair.training\/blogs\/#\/schema\/person\/7f83c342f5d1632d6f7b4b0b0f447823","name":"DataFlair Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4cf3a74600d131330b8c481d519afd1574093ed89f6d3396a95393ad223eb7cd?s=96&d=mm&r=g","caption":"DataFlair Team"},"description":"DataFlair Team creates expert-level guides on programming, Java, Python, C++, DSA, AI, ML, data Science, Android, Flutter, MERN, Web Development, and technology. Our goal is to empower learners with easy-to-understand content. Explore our resources for career growth and practical learning.","url":"https:\/\/data-flair.training\/blogs\/author\/dfteam1\/"}]}},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/109323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/comments?post=109323"}],"version-history":[{"count":4,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/109323\/revisions"}],"predecessor-version":[{"id":109532,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/posts\/109323\/revisions\/109532"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media\/109524"}],"wp:attachment":[{"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/media?parent=109323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/categories?post=109323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/data-flair.training\/blogs\/wp-json\/wp\/v2\/tags?post=109323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}