Issue with type force PATH search





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







3















This is Bash. The behavior is similar in fish.



$ which python
/usr/bin/python
$ alias py=python
$ type py
py is aliased to `python'


​And then, running type -P py prints nothing, where as I expected to print /usr/bin/pyton in a similar fashion to what is seen below.​



$ type ls
ls is aliased to `ls --color=auto'
$ type -P ls
/bin/ls


The documentation for the -P option reads



  -P        force a PATH search for each NAME, even if it is an alias,
builtin, or function, and returns the name of the disk file
that would be executed


I've confirmed that /usr/bin (the directory where python is located) is in PATH.



What is going on here?










share|improve this question































    3















    This is Bash. The behavior is similar in fish.



    $ which python
    /usr/bin/python
    $ alias py=python
    $ type py
    py is aliased to `python'


    ​And then, running type -P py prints nothing, where as I expected to print /usr/bin/pyton in a similar fashion to what is seen below.​



    $ type ls
    ls is aliased to `ls --color=auto'
    $ type -P ls
    /bin/ls


    The documentation for the -P option reads



      -P        force a PATH search for each NAME, even if it is an alias,
    builtin, or function, and returns the name of the disk file
    that would be executed


    I've confirmed that /usr/bin (the directory where python is located) is in PATH.



    What is going on here?










    share|improve this question



























      3












      3








      3


      1






      This is Bash. The behavior is similar in fish.



      $ which python
      /usr/bin/python
      $ alias py=python
      $ type py
      py is aliased to `python'


      ​And then, running type -P py prints nothing, where as I expected to print /usr/bin/pyton in a similar fashion to what is seen below.​



      $ type ls
      ls is aliased to `ls --color=auto'
      $ type -P ls
      /bin/ls


      The documentation for the -P option reads



        -P        force a PATH search for each NAME, even if it is an alias,
      builtin, or function, and returns the name of the disk file
      that would be executed


      I've confirmed that /usr/bin (the directory where python is located) is in PATH.



      What is going on here?










      share|improve this question
















      This is Bash. The behavior is similar in fish.



      $ which python
      /usr/bin/python
      $ alias py=python
      $ type py
      py is aliased to `python'


      ​And then, running type -P py prints nothing, where as I expected to print /usr/bin/pyton in a similar fashion to what is seen below.​



      $ type ls
      ls is aliased to `ls --color=auto'
      $ type -P ls
      /bin/ls


      The documentation for the -P option reads



        -P        force a PATH search for each NAME, even if it is an alias,
      builtin, or function, and returns the name of the disk file
      that would be executed


      I've confirmed that /usr/bin (the directory where python is located) is in PATH.



      What is going on here?







      bash fish shell-builtin






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Apr 4 at 9:08







      Git Gud

















      asked Apr 4 at 8:50









      Git GudGit Gud

      1375




      1375






















          2 Answers
          2






          active

          oldest

          votes


















          9














          This:




          force a PATH search for each NAME, even if it is an alias,




          does not mean that bash will expand the alias and then search for the expanded command. It means that, if there were a command foo, and also an alias foo, the type -P foo will still look for the command named foo, even though there's an alias masking it. So bash isn't expanding py in type -P py to be python, and it won't show /usr/bin/python.






          share|improve this answer
























          • Well, this could be clearer. Thanks.

            – Git Gud
            Apr 4 at 8:56











          • Seems clear enough. NAME is the argument to type, not an alias expansion of the argument.

            – chepner
            Apr 4 at 18:42





















          4














          What’s going on is that your shell is looking for a binary named py in each directory on your PATH, and not finding any.



          type -P doesn’t interpret aliases or functions; it forces the given name to be searched on the path, ignoring any other available command not of type “file” with the same name.



          (There’s an added subtlety with type -p and type -P: they take hashes into account, so they will show a hashed value if one exists, without looking in the PATH. But that’s not involved here.)






          share|improve this answer
























            Your Answer








            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "106"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: false,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: null,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f510450%2fissue-with-type-force-path-search%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            2 Answers
            2






            active

            oldest

            votes








            2 Answers
            2






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            9














            This:




            force a PATH search for each NAME, even if it is an alias,




            does not mean that bash will expand the alias and then search for the expanded command. It means that, if there were a command foo, and also an alias foo, the type -P foo will still look for the command named foo, even though there's an alias masking it. So bash isn't expanding py in type -P py to be python, and it won't show /usr/bin/python.






            share|improve this answer
























            • Well, this could be clearer. Thanks.

              – Git Gud
              Apr 4 at 8:56











            • Seems clear enough. NAME is the argument to type, not an alias expansion of the argument.

              – chepner
              Apr 4 at 18:42


















            9














            This:




            force a PATH search for each NAME, even if it is an alias,




            does not mean that bash will expand the alias and then search for the expanded command. It means that, if there were a command foo, and also an alias foo, the type -P foo will still look for the command named foo, even though there's an alias masking it. So bash isn't expanding py in type -P py to be python, and it won't show /usr/bin/python.






            share|improve this answer
























            • Well, this could be clearer. Thanks.

              – Git Gud
              Apr 4 at 8:56











            • Seems clear enough. NAME is the argument to type, not an alias expansion of the argument.

              – chepner
              Apr 4 at 18:42
















            9












            9








            9







            This:




            force a PATH search for each NAME, even if it is an alias,




            does not mean that bash will expand the alias and then search for the expanded command. It means that, if there were a command foo, and also an alias foo, the type -P foo will still look for the command named foo, even though there's an alias masking it. So bash isn't expanding py in type -P py to be python, and it won't show /usr/bin/python.






            share|improve this answer













            This:




            force a PATH search for each NAME, even if it is an alias,




            does not mean that bash will expand the alias and then search for the expanded command. It means that, if there were a command foo, and also an alias foo, the type -P foo will still look for the command named foo, even though there's an alias masking it. So bash isn't expanding py in type -P py to be python, and it won't show /usr/bin/python.







            share|improve this answer












            share|improve this answer



            share|improve this answer










            answered Apr 4 at 8:55









            murumuru

            37.2k589164




            37.2k589164













            • Well, this could be clearer. Thanks.

              – Git Gud
              Apr 4 at 8:56











            • Seems clear enough. NAME is the argument to type, not an alias expansion of the argument.

              – chepner
              Apr 4 at 18:42





















            • Well, this could be clearer. Thanks.

              – Git Gud
              Apr 4 at 8:56











            • Seems clear enough. NAME is the argument to type, not an alias expansion of the argument.

              – chepner
              Apr 4 at 18:42



















            Well, this could be clearer. Thanks.

            – Git Gud
            Apr 4 at 8:56





            Well, this could be clearer. Thanks.

            – Git Gud
            Apr 4 at 8:56













            Seems clear enough. NAME is the argument to type, not an alias expansion of the argument.

            – chepner
            Apr 4 at 18:42







            Seems clear enough. NAME is the argument to type, not an alias expansion of the argument.

            – chepner
            Apr 4 at 18:42















            4














            What’s going on is that your shell is looking for a binary named py in each directory on your PATH, and not finding any.



            type -P doesn’t interpret aliases or functions; it forces the given name to be searched on the path, ignoring any other available command not of type “file” with the same name.



            (There’s an added subtlety with type -p and type -P: they take hashes into account, so they will show a hashed value if one exists, without looking in the PATH. But that’s not involved here.)






            share|improve this answer




























              4














              What’s going on is that your shell is looking for a binary named py in each directory on your PATH, and not finding any.



              type -P doesn’t interpret aliases or functions; it forces the given name to be searched on the path, ignoring any other available command not of type “file” with the same name.



              (There’s an added subtlety with type -p and type -P: they take hashes into account, so they will show a hashed value if one exists, without looking in the PATH. But that’s not involved here.)






              share|improve this answer


























                4












                4








                4







                What’s going on is that your shell is looking for a binary named py in each directory on your PATH, and not finding any.



                type -P doesn’t interpret aliases or functions; it forces the given name to be searched on the path, ignoring any other available command not of type “file” with the same name.



                (There’s an added subtlety with type -p and type -P: they take hashes into account, so they will show a hashed value if one exists, without looking in the PATH. But that’s not involved here.)






                share|improve this answer













                What’s going on is that your shell is looking for a binary named py in each directory on your PATH, and not finding any.



                type -P doesn’t interpret aliases or functions; it forces the given name to be searched on the path, ignoring any other available command not of type “file” with the same name.



                (There’s an added subtlety with type -p and type -P: they take hashes into account, so they will show a hashed value if one exists, without looking in the PATH. But that’s not involved here.)







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Apr 4 at 8:54









                Stephen KittStephen Kitt

                180k25409488




                180k25409488






























                    draft saved

                    draft discarded




















































                    Thanks for contributing an answer to Unix & Linux Stack Exchange!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid



                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.


                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f510450%2fissue-with-type-force-path-search%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Masuk log Menu navigasi

                    Identifying “long and narrow” polygons in with PostGISlength and width of polygonWhy postgis st_overlaps reports Qgis' “avoid intersections” generated polygon as overlapping with others?Adjusting polygons to boundary and filling holesDrawing polygons with fixed area?How to remove spikes in Polygons with PostGISDeleting sliver polygons after difference operation in QGIS?Snapping boundaries in PostGISSplit polygon into parts adding attributes based on underlying polygon in QGISSplitting overlap between polygons and assign to nearest polygon using PostGIS?Expanding polygons and clipping at midpoint?Removing Intersection of Buffers in Same Layers

                    Старые Смолеговицы Содержание История | География | Демография | Достопримечательности | Примечания | НавигацияHGЯOLHGЯOL41 206 832 01641 606 406 141Административно-территориальное деление Ленинградской области«Переписная оброчная книга Водской пятины 1500 года», С. 793«Карта Ингерманландии: Ивангорода, Яма, Копорья, Нотеборга», по материалам 1676 г.«Генеральная карта провинции Ингерманландии» Э. Белинга и А. Андерсина, 1704 г., составлена по материалам 1678 г.«Географический чертёж над Ижорскою землей со своими городами» Адриана Шонбека 1705 г.Новая и достоверная всей Ингерманландии ланткарта. Грав. А. Ростовцев. СПб., 1727 г.Топографическая карта Санкт-Петербургской губернии. 5-и верстка. Шуберт. 1834 г.Описание Санкт-Петербургской губернии по уездам и станамСпецкарта западной части России Ф. Ф. Шуберта. 1844 г.Алфавитный список селений по уездам и станам С.-Петербургской губернииСписки населённых мест Российской Империи, составленные и издаваемые центральным статистическим комитетом министерства внутренних дел. XXXVII. Санкт-Петербургская губерния. По состоянию на 1862 год. СПб. 1864. С. 203Материалы по статистике народного хозяйства в С.-Петербургской губернии. Вып. IX. Частновладельческое хозяйство в Ямбургском уезде. СПб, 1888, С. 146, С. 2, 7, 54Положение о гербе муниципального образования Курское сельское поселениеСправочник истории административно-территориального деления Ленинградской области.Топографическая карта Ленинградской области, квадрат О-35-23-В (Хотыницы), 1930 г.АрхивированоАдминистративно-территориальное деление Ленинградской области. — Л., 1933, С. 27, 198АрхивированоАдминистративно-экономический справочник по Ленинградской области. — Л., 1936, с. 219АрхивированоАдминистративно-территориальное деление Ленинградской области. — Л., 1966, с. 175АрхивированоАдминистративно-территориальное деление Ленинградской области. — Лениздат, 1973, С. 180АрхивированоАдминистративно-территориальное деление Ленинградской области. — Лениздат, 1990, ISBN 5-289-00612-5, С. 38АрхивированоАдминистративно-территориальное деление Ленинградской области. — СПб., 2007, с. 60АрхивированоКоряков Юрий База данных «Этно-языковой состав населённых пунктов России». Ленинградская область.Административно-территориальное деление Ленинградской области. — СПб, 1997, ISBN 5-86153-055-6, С. 41АрхивированоКультовый комплекс Старые Смолеговицы // Электронная энциклопедия ЭрмитажаПроблемы выявления, изучения и сохранения культовых комплексов с каменными крестами: по материалам работ 2016-2017 гг. в Ленинградской области