Is it possible to search for a directory/file combination? The Next CEO of Stack OverflowFind path that has specific sub directoryksh:Linux - Command to find a particular directory/fileIs there a way to find a file in an inverse recursive search?Find images by size: find / file / awkExclude directory in findHow do I search all subdirectories to find one with a certain name?Efficiently finding a file/directory based on keywordIdentify sub-directories that do not contain a specific string in a specific fileHow to use the results of “file” (Name of Creating Application: Microsoft Word) to search for a specific string?Search for files within a directoryfind a file through particular search in while loopCreating text files in every sub-directory

TikZ: How to fill area with a special pattern?

Expressing the idea of having a very busy time

Expectation in a stochastic differential equation

Is there a reasonable and studied concept of reduction between regular languages?

Won the lottery - how do I keep the money?

Is dried pee considered dirt?

Would a grinding machine be a simple and workable propulsion system for an interplanetary spacecraft?

Why don't programming languages automatically manage the synchronous/asynchronous problem?

Is it professional to write unrelated content in an almost-empty email?

what's the use of '% to gdp' type of variables?

"Eavesdropping" vs "Listen in on"

What is the difference between "hamstring tendon" and "common hamstring tendon"?

(How) Could a medieval fantasy world survive a magic-induced "nuclear winter"?

How to Implement Deterministic Encryption Safely in .NET

Reference request: Grassmannian and Plucker coordinates in type B, C, D

What steps are necessary to read a Modern SSD in Medieval Europe?

Small nick on power cord from an electric alarm clock, and copper wiring exposed but intact

Can I calculate next year's exemptions based on this year's refund/amount owed?

Is it correct to say moon starry nights?

What difference does it make using sed with/without whitespaces?

Why is the US ranked as #45 in Press Freedom ratings, despite its extremely permissive free speech laws?

How to get the last not-null value in an ordered column of a huge table?

Can you teleport closer to a creature you are Frightened of?

Help understanding this unsettling image of Titan, Epimetheus, and Saturn's rings?



Is it possible to search for a directory/file combination?



The Next CEO of Stack OverflowFind path that has specific sub directoryksh:Linux - Command to find a particular directory/fileIs there a way to find a file in an inverse recursive search?Find images by size: find / file / awkExclude directory in findHow do I search all subdirectories to find one with a certain name?Efficiently finding a file/directory based on keywordIdentify sub-directories that do not contain a specific string in a specific fileHow to use the results of “file” (Name of Creating Application: Microsoft Word) to search for a specific string?Search for files within a directoryfind a file through particular search in while loopCreating text files in every sub-directory










10















I need to find an image, say ABC.jpg, that I know will have been programmatically placed into a directory named ABC_MPSC. I've tried:



cd /
find . -name "ABC_MPSC/ABC.jpg"


But that doesn't return anything (I actually know where the particular one I'm searching for is, so I know it exists). Is there a find command that could have helped me not have to search manually?










share|improve this question







New contributor




PascLeRasc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549

    – Jeff Schaller
    2 days ago







  • 2





    You can also find it using locate, which should be significantly faster, but only works if the file already existed when updatedb was last run.

    – Simon Richter
    2 days ago
















10















I need to find an image, say ABC.jpg, that I know will have been programmatically placed into a directory named ABC_MPSC. I've tried:



cd /
find . -name "ABC_MPSC/ABC.jpg"


But that doesn't return anything (I actually know where the particular one I'm searching for is, so I know it exists). Is there a find command that could have helped me not have to search manually?










share|improve this question







New contributor




PascLeRasc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549

    – Jeff Schaller
    2 days ago







  • 2





    You can also find it using locate, which should be significantly faster, but only works if the file already existed when updatedb was last run.

    – Simon Richter
    2 days ago














10












10








10


1






I need to find an image, say ABC.jpg, that I know will have been programmatically placed into a directory named ABC_MPSC. I've tried:



cd /
find . -name "ABC_MPSC/ABC.jpg"


But that doesn't return anything (I actually know where the particular one I'm searching for is, so I know it exists). Is there a find command that could have helped me not have to search manually?










share|improve this question







New contributor




PascLeRasc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












I need to find an image, say ABC.jpg, that I know will have been programmatically placed into a directory named ABC_MPSC. I've tried:



cd /
find . -name "ABC_MPSC/ABC.jpg"


But that doesn't return anything (I actually know where the particular one I'm searching for is, so I know it exists). Is there a find command that could have helped me not have to search manually?







find






share|improve this question







New contributor




PascLeRasc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




PascLeRasc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




PascLeRasc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 2 days ago









PascLeRascPascLeRasc

1534




1534




New contributor




PascLeRasc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





PascLeRasc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






PascLeRasc is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549

    – Jeff Schaller
    2 days ago







  • 2





    You can also find it using locate, which should be significantly faster, but only works if the file already existed when updatedb was last run.

    – Simon Richter
    2 days ago


















  • Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549

    – Jeff Schaller
    2 days ago







  • 2





    You can also find it using locate, which should be significantly faster, but only works if the file already existed when updatedb was last run.

    – Simon Richter
    2 days ago

















Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549

– Jeff Schaller
2 days ago






Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549

– Jeff Schaller
2 days ago





2




2





You can also find it using locate, which should be significantly faster, but only works if the file already existed when updatedb was last run.

– Simon Richter
2 days ago






You can also find it using locate, which should be significantly faster, but only works if the file already existed when updatedb was last run.

– Simon Richter
2 days ago











2 Answers
2






active

oldest

votes


















16














There's a -path predicate that's useful here:



find . -path '*/ABC_MPSC/ABC.jpg'


The POSIX description for that predicate is:




The primary shall evaluate as true if the current pathname matches pattern using the pattern matching notation described in Pattern Matching Notation. The additional rules in Patterns Used for Filename Expansion do not apply as this is a matching operation, not an expansion.




The reason that your -name "ABC_MPSC/ABC.jpg" failed is because the -name predicate:




shall evaluate as true if the basename of the current pathname matches pattern




In other words, -name never sees the directory of the current filename, only the base filename itself (ABC.jpg, for example).






share|improve this answer
































    9














    Two ways (apart from using -path):




    1. Look for the directory, then detect the file:



      find / -type d -name 'ABC_MPSC' -exec test -f /ABC.jpg ; -print


      This relies on the find implementation to expand to the current pathname of the found directory, even though it's concatenated with /ABC.jpg (it's not required to do that). It could also be written as



      find / -type d -name 'ABC_MPSC' 
      -exec sh -c 'test -f "$1"/ABC.jpg' sh ; -print



    2. Look for the file, then check it's parent directory name:



      find / -type f -name 'ABC.jpg' -exec sh -c '
      case $(dirname "$1") in
      */ABC_MPSC) exit 0 ;;
      *) exit 1
      esac' sh ; -print


    Both of these alternatives would be slower than using -path in the way as Jeff shows. I'm leaving them here as examples none the less, as they could possibly be adapted for other things.






    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
      );



      );






      PascLeRasc is a new contributor. Be nice, and check out our Code of Conduct.









      draft saved

      draft discarded


















      StackExchange.ready(
      function ()
      StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f509490%2fis-it-possible-to-search-for-a-directory-file-combination%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









      16














      There's a -path predicate that's useful here:



      find . -path '*/ABC_MPSC/ABC.jpg'


      The POSIX description for that predicate is:




      The primary shall evaluate as true if the current pathname matches pattern using the pattern matching notation described in Pattern Matching Notation. The additional rules in Patterns Used for Filename Expansion do not apply as this is a matching operation, not an expansion.




      The reason that your -name "ABC_MPSC/ABC.jpg" failed is because the -name predicate:




      shall evaluate as true if the basename of the current pathname matches pattern




      In other words, -name never sees the directory of the current filename, only the base filename itself (ABC.jpg, for example).






      share|improve this answer





























        16














        There's a -path predicate that's useful here:



        find . -path '*/ABC_MPSC/ABC.jpg'


        The POSIX description for that predicate is:




        The primary shall evaluate as true if the current pathname matches pattern using the pattern matching notation described in Pattern Matching Notation. The additional rules in Patterns Used for Filename Expansion do not apply as this is a matching operation, not an expansion.




        The reason that your -name "ABC_MPSC/ABC.jpg" failed is because the -name predicate:




        shall evaluate as true if the basename of the current pathname matches pattern




        In other words, -name never sees the directory of the current filename, only the base filename itself (ABC.jpg, for example).






        share|improve this answer



























          16












          16








          16







          There's a -path predicate that's useful here:



          find . -path '*/ABC_MPSC/ABC.jpg'


          The POSIX description for that predicate is:




          The primary shall evaluate as true if the current pathname matches pattern using the pattern matching notation described in Pattern Matching Notation. The additional rules in Patterns Used for Filename Expansion do not apply as this is a matching operation, not an expansion.




          The reason that your -name "ABC_MPSC/ABC.jpg" failed is because the -name predicate:




          shall evaluate as true if the basename of the current pathname matches pattern




          In other words, -name never sees the directory of the current filename, only the base filename itself (ABC.jpg, for example).






          share|improve this answer















          There's a -path predicate that's useful here:



          find . -path '*/ABC_MPSC/ABC.jpg'


          The POSIX description for that predicate is:




          The primary shall evaluate as true if the current pathname matches pattern using the pattern matching notation described in Pattern Matching Notation. The additional rules in Patterns Used for Filename Expansion do not apply as this is a matching operation, not an expansion.




          The reason that your -name "ABC_MPSC/ABC.jpg" failed is because the -name predicate:




          shall evaluate as true if the basename of the current pathname matches pattern




          In other words, -name never sees the directory of the current filename, only the base filename itself (ABC.jpg, for example).







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited 2 days ago

























          answered 2 days ago









          Jeff SchallerJeff Schaller

          44.4k1162143




          44.4k1162143























              9














              Two ways (apart from using -path):




              1. Look for the directory, then detect the file:



                find / -type d -name 'ABC_MPSC' -exec test -f /ABC.jpg ; -print


                This relies on the find implementation to expand to the current pathname of the found directory, even though it's concatenated with /ABC.jpg (it's not required to do that). It could also be written as



                find / -type d -name 'ABC_MPSC' 
                -exec sh -c 'test -f "$1"/ABC.jpg' sh ; -print



              2. Look for the file, then check it's parent directory name:



                find / -type f -name 'ABC.jpg' -exec sh -c '
                case $(dirname "$1") in
                */ABC_MPSC) exit 0 ;;
                *) exit 1
                esac' sh ; -print


              Both of these alternatives would be slower than using -path in the way as Jeff shows. I'm leaving them here as examples none the less, as they could possibly be adapted for other things.






              share|improve this answer





























                9














                Two ways (apart from using -path):




                1. Look for the directory, then detect the file:



                  find / -type d -name 'ABC_MPSC' -exec test -f /ABC.jpg ; -print


                  This relies on the find implementation to expand to the current pathname of the found directory, even though it's concatenated with /ABC.jpg (it's not required to do that). It could also be written as



                  find / -type d -name 'ABC_MPSC' 
                  -exec sh -c 'test -f "$1"/ABC.jpg' sh ; -print



                2. Look for the file, then check it's parent directory name:



                  find / -type f -name 'ABC.jpg' -exec sh -c '
                  case $(dirname "$1") in
                  */ABC_MPSC) exit 0 ;;
                  *) exit 1
                  esac' sh ; -print


                Both of these alternatives would be slower than using -path in the way as Jeff shows. I'm leaving them here as examples none the less, as they could possibly be adapted for other things.






                share|improve this answer



























                  9












                  9








                  9







                  Two ways (apart from using -path):




                  1. Look for the directory, then detect the file:



                    find / -type d -name 'ABC_MPSC' -exec test -f /ABC.jpg ; -print


                    This relies on the find implementation to expand to the current pathname of the found directory, even though it's concatenated with /ABC.jpg (it's not required to do that). It could also be written as



                    find / -type d -name 'ABC_MPSC' 
                    -exec sh -c 'test -f "$1"/ABC.jpg' sh ; -print



                  2. Look for the file, then check it's parent directory name:



                    find / -type f -name 'ABC.jpg' -exec sh -c '
                    case $(dirname "$1") in
                    */ABC_MPSC) exit 0 ;;
                    *) exit 1
                    esac' sh ; -print


                  Both of these alternatives would be slower than using -path in the way as Jeff shows. I'm leaving them here as examples none the less, as they could possibly be adapted for other things.






                  share|improve this answer















                  Two ways (apart from using -path):




                  1. Look for the directory, then detect the file:



                    find / -type d -name 'ABC_MPSC' -exec test -f /ABC.jpg ; -print


                    This relies on the find implementation to expand to the current pathname of the found directory, even though it's concatenated with /ABC.jpg (it's not required to do that). It could also be written as



                    find / -type d -name 'ABC_MPSC' 
                    -exec sh -c 'test -f "$1"/ABC.jpg' sh ; -print



                  2. Look for the file, then check it's parent directory name:



                    find / -type f -name 'ABC.jpg' -exec sh -c '
                    case $(dirname "$1") in
                    */ABC_MPSC) exit 0 ;;
                    *) exit 1
                    esac' sh ; -print


                  Both of these alternatives would be slower than using -path in the way as Jeff shows. I'm leaving them here as examples none the less, as they could possibly be adapted for other things.







                  share|improve this answer














                  share|improve this answer



                  share|improve this answer








                  edited 2 days ago

























                  answered 2 days ago









                  KusalanandaKusalananda

                  139k17259429




                  139k17259429




















                      PascLeRasc is a new contributor. Be nice, and check out our Code of Conduct.









                      draft saved

                      draft discarded


















                      PascLeRasc is a new contributor. Be nice, and check out our Code of Conduct.












                      PascLeRasc is a new contributor. Be nice, and check out our Code of Conduct.











                      PascLeRasc is a new contributor. Be nice, and check out our Code of Conduct.














                      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%2f509490%2fis-it-possible-to-search-for-a-directory-file-combination%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

                      រឿង រ៉ូមេអូ និង ហ្ស៊ុយលីយេ សង្ខេបរឿង តួអង្គ បញ្ជីណែនាំ

                      QGIS export composer to PDF scale the map [closed] Planned maintenance scheduled April 23, 2019 at 23:30 UTC (7:30pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?Print Composer QGIS 2.6, how to export image?QGIS 2.8.1 print composer won't export all OpenCycleMap base layer tilesSave Print/Map QGIS composer view as PNG/PDF using Python (without changing anything in visible layout)?Export QGIS Print Composer PDF with searchable text labelsQGIS Print Composer does not change from landscape to portrait orientation?How can I avoid map size and scale changes in print composer?Fuzzy PDF export in QGIS running on macSierra OSExport the legend into its 100% size using Print ComposerScale-dependent rendering in QGIS PDF output

                      PDF-ში გადმოწერა სანავიგაციო მენიუproject page