How do I redirect output of command into ls? [duplicate]












3
















This question already has an answer here:




  • How to pass the output of one command as the command-line argument to another?

    5 answers



  • Redirecting the content of a file to the command “echo”

    5 answers



  • Pass the output of previous command to next as an argument

    6 answers




I have a problem with redirections :



$ which python3


gives me



/Library/Frameworks/Python.framework/Versions/3.7/bin/python3


and



$ ls -l /Library/Frameworks/Python.framework/Versions/3.7/bin/python3


gives me



lrwxr-xr-x  1 root  admin  9  5 fév 18:30 /Library/Frameworks/Python.framework/Versions/3.7/bin/python3 -> python3.7


but



which python3 | ls -l


don't gives me the same result.



Do you know why ? And what is the right command for redirection ?



I'm using OSX.



I have to say that the following question pass the output of previous command to next as an argument may be the same as this one, but if I look the answers that were given, there I'm lost. To be useful, they require more advanced knowledge or study than those given here.










share|improve this question















marked as duplicate by Michael Homer, Kevin, l0b0, Jeff Schaller, Sparhawk Feb 15 at 4:00


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.



















  • I've updated the list of duplicates to some other better (IMHO) questions on the same topic. Especially Redirecting the content of a file to the command "echo" mirrors your question quite well as echo behaves like ls with regards to (not) reading its standard input.

    – Kusalananda
    Feb 16 at 10:33


















3
















This question already has an answer here:




  • How to pass the output of one command as the command-line argument to another?

    5 answers



  • Redirecting the content of a file to the command “echo”

    5 answers



  • Pass the output of previous command to next as an argument

    6 answers




I have a problem with redirections :



$ which python3


gives me



/Library/Frameworks/Python.framework/Versions/3.7/bin/python3


and



$ ls -l /Library/Frameworks/Python.framework/Versions/3.7/bin/python3


gives me



lrwxr-xr-x  1 root  admin  9  5 fév 18:30 /Library/Frameworks/Python.framework/Versions/3.7/bin/python3 -> python3.7


but



which python3 | ls -l


don't gives me the same result.



Do you know why ? And what is the right command for redirection ?



I'm using OSX.



I have to say that the following question pass the output of previous command to next as an argument may be the same as this one, but if I look the answers that were given, there I'm lost. To be useful, they require more advanced knowledge or study than those given here.










share|improve this question















marked as duplicate by Michael Homer, Kevin, l0b0, Jeff Schaller, Sparhawk Feb 15 at 4:00


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.



















  • I've updated the list of duplicates to some other better (IMHO) questions on the same topic. Especially Redirecting the content of a file to the command "echo" mirrors your question quite well as echo behaves like ls with regards to (not) reading its standard input.

    – Kusalananda
    Feb 16 at 10:33
















3












3








3









This question already has an answer here:




  • How to pass the output of one command as the command-line argument to another?

    5 answers



  • Redirecting the content of a file to the command “echo”

    5 answers



  • Pass the output of previous command to next as an argument

    6 answers




I have a problem with redirections :



$ which python3


gives me



/Library/Frameworks/Python.framework/Versions/3.7/bin/python3


and



$ ls -l /Library/Frameworks/Python.framework/Versions/3.7/bin/python3


gives me



lrwxr-xr-x  1 root  admin  9  5 fév 18:30 /Library/Frameworks/Python.framework/Versions/3.7/bin/python3 -> python3.7


but



which python3 | ls -l


don't gives me the same result.



Do you know why ? And what is the right command for redirection ?



I'm using OSX.



I have to say that the following question pass the output of previous command to next as an argument may be the same as this one, but if I look the answers that were given, there I'm lost. To be useful, they require more advanced knowledge or study than those given here.










share|improve this question

















This question already has an answer here:




  • How to pass the output of one command as the command-line argument to another?

    5 answers



  • Redirecting the content of a file to the command “echo”

    5 answers



  • Pass the output of previous command to next as an argument

    6 answers




I have a problem with redirections :



$ which python3


gives me



/Library/Frameworks/Python.framework/Versions/3.7/bin/python3


and



$ ls -l /Library/Frameworks/Python.framework/Versions/3.7/bin/python3


gives me



lrwxr-xr-x  1 root  admin  9  5 fév 18:30 /Library/Frameworks/Python.framework/Versions/3.7/bin/python3 -> python3.7


but



which python3 | ls -l


don't gives me the same result.



Do you know why ? And what is the right command for redirection ?



I'm using OSX.



I have to say that the following question pass the output of previous command to next as an argument may be the same as this one, but if I look the answers that were given, there I'm lost. To be useful, they require more advanced knowledge or study than those given here.





This question already has an answer here:




  • How to pass the output of one command as the command-line argument to another?

    5 answers



  • Redirecting the content of a file to the command “echo”

    5 answers



  • Pass the output of previous command to next as an argument

    6 answers








shell osx






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Feb 16 at 10:29







Raoul HATTERER

















asked Feb 14 at 16:34









Raoul HATTERERRaoul HATTERER

184




184




marked as duplicate by Michael Homer, Kevin, l0b0, Jeff Schaller, Sparhawk Feb 15 at 4:00


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.









marked as duplicate by Michael Homer, Kevin, l0b0, Jeff Schaller, Sparhawk Feb 15 at 4:00


This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.















  • I've updated the list of duplicates to some other better (IMHO) questions on the same topic. Especially Redirecting the content of a file to the command "echo" mirrors your question quite well as echo behaves like ls with regards to (not) reading its standard input.

    – Kusalananda
    Feb 16 at 10:33





















  • I've updated the list of duplicates to some other better (IMHO) questions on the same topic. Especially Redirecting the content of a file to the command "echo" mirrors your question quite well as echo behaves like ls with regards to (not) reading its standard input.

    – Kusalananda
    Feb 16 at 10:33



















I've updated the list of duplicates to some other better (IMHO) questions on the same topic. Especially Redirecting the content of a file to the command "echo" mirrors your question quite well as echo behaves like ls with regards to (not) reading its standard input.

– Kusalananda
Feb 16 at 10:33







I've updated the list of duplicates to some other better (IMHO) questions on the same topic. Especially Redirecting the content of a file to the command "echo" mirrors your question quite well as echo behaves like ls with regards to (not) reading its standard input.

– Kusalananda
Feb 16 at 10:33












3 Answers
3






active

oldest

votes


















12














ls does not take input from standard in, but only from arguments:



Try ls -l "$(which python3)"






share|improve this answer

































    12














    ls does not read from the pipe. In fact, ls does not use its standard input at all.



    Instead, you have to pass the thing you'd like to run ls -l on via the command line of ls:



    ls -l "$( which python3 )"


    This uses a command substitution on the command line of ls -l which will expand to the output of the which command. This will then be used as a command line argument for ls.



    Alternatively:



    ls -l "$( command -v python3 )"


    Related:




    • Why not use "which"? What to use then?






    share|improve this answer

































      3














      Other answers are good, but this is also handy:



      which python3 | xargs ls -l


      xargs gets values from stdin and appends them as command-line argument to the specified program.






      share|improve this answer






























        3 Answers
        3






        active

        oldest

        votes








        3 Answers
        3






        active

        oldest

        votes









        active

        oldest

        votes






        active

        oldest

        votes









        12














        ls does not take input from standard in, but only from arguments:



        Try ls -l "$(which python3)"






        share|improve this answer






























          12














          ls does not take input from standard in, but only from arguments:



          Try ls -l "$(which python3)"






          share|improve this answer




























            12












            12








            12







            ls does not take input from standard in, but only from arguments:



            Try ls -l "$(which python3)"






            share|improve this answer















            ls does not take input from standard in, but only from arguments:



            Try ls -l "$(which python3)"







            share|improve this answer














            share|improve this answer



            share|improve this answer








            edited Feb 14 at 19:35









            Jeff Schaller

            43.4k1160140




            43.4k1160140










            answered Feb 14 at 16:37









            ctrl-alt-delorctrl-alt-delor

            12k42360




            12k42360

























                12














                ls does not read from the pipe. In fact, ls does not use its standard input at all.



                Instead, you have to pass the thing you'd like to run ls -l on via the command line of ls:



                ls -l "$( which python3 )"


                This uses a command substitution on the command line of ls -l which will expand to the output of the which command. This will then be used as a command line argument for ls.



                Alternatively:



                ls -l "$( command -v python3 )"


                Related:




                • Why not use "which"? What to use then?






                share|improve this answer






























                  12














                  ls does not read from the pipe. In fact, ls does not use its standard input at all.



                  Instead, you have to pass the thing you'd like to run ls -l on via the command line of ls:



                  ls -l "$( which python3 )"


                  This uses a command substitution on the command line of ls -l which will expand to the output of the which command. This will then be used as a command line argument for ls.



                  Alternatively:



                  ls -l "$( command -v python3 )"


                  Related:




                  • Why not use "which"? What to use then?






                  share|improve this answer




























                    12












                    12








                    12







                    ls does not read from the pipe. In fact, ls does not use its standard input at all.



                    Instead, you have to pass the thing you'd like to run ls -l on via the command line of ls:



                    ls -l "$( which python3 )"


                    This uses a command substitution on the command line of ls -l which will expand to the output of the which command. This will then be used as a command line argument for ls.



                    Alternatively:



                    ls -l "$( command -v python3 )"


                    Related:




                    • Why not use "which"? What to use then?






                    share|improve this answer















                    ls does not read from the pipe. In fact, ls does not use its standard input at all.



                    Instead, you have to pass the thing you'd like to run ls -l on via the command line of ls:



                    ls -l "$( which python3 )"


                    This uses a command substitution on the command line of ls -l which will expand to the output of the which command. This will then be used as a command line argument for ls.



                    Alternatively:



                    ls -l "$( command -v python3 )"


                    Related:




                    • Why not use "which"? What to use then?







                    share|improve this answer














                    share|improve this answer



                    share|improve this answer








                    edited Feb 14 at 16:56

























                    answered Feb 14 at 16:37









                    KusalanandaKusalananda

                    135k17256424




                    135k17256424























                        3














                        Other answers are good, but this is also handy:



                        which python3 | xargs ls -l


                        xargs gets values from stdin and appends them as command-line argument to the specified program.






                        share|improve this answer




























                          3














                          Other answers are good, but this is also handy:



                          which python3 | xargs ls -l


                          xargs gets values from stdin and appends them as command-line argument to the specified program.






                          share|improve this answer


























                            3












                            3








                            3







                            Other answers are good, but this is also handy:



                            which python3 | xargs ls -l


                            xargs gets values from stdin and appends them as command-line argument to the specified program.






                            share|improve this answer













                            Other answers are good, but this is also handy:



                            which python3 | xargs ls -l


                            xargs gets values from stdin and appends them as command-line argument to the specified program.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Feb 14 at 23:17









                            jickjick

                            1392




                            1392















                                Popular posts from this blog

                                How do I know what Microsoft account the skydrive app is syncing to?

                                When does type information flow backwards in C++?

                                Grease: Live!