Is it possible to search for a directory/file combination? The 2019 Stack Overflow Developer Survey Results Are InFind 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
Can withdrawing asylum be illegal?
Do ℕ, mathbbN, BbbN, symbbN effectively differ, and is there a "canonical" specification of the naturals?
Humiliated in front of employees
Is it ok to offer lower paid work as a trial period before negotiating for a full-time job?
60's-70's movie: home appliances revolting against the owners
Can I visit the Trinity College (Cambridge) library and see some of their rare books
Variable with quotation marks "$()"
Make it rain characters
Am I ethically obligated to go into work on an off day if the reason is sudden?
How to fill page vertically?
Mortgage adviser recommends a longer term than necessary combined with overpayments
How to substitute curly brackets with round brackets in a grid of list
What other Star Trek series did the main TNG cast show up in?
Define a list range inside a list
Why are Marketing Cloud timestamps not stored in the same timezone as Sales Cloud?
How do you keep chess fun when your opponent constantly beats you?
Is every episode of "Where are my Pants?" identical?
Categorical vs continuous feature selection/engineering
Grounding Vcc and Vee?
Free operad over a monoid object
Word for: a synonym with a positive connotation?
Why can't devices on different VLANs, but on the same subnet, communicate?
What do I do when my TA workload is more than expected?
Cooking pasta in a water boiler
Is it possible to search for a directory/file combination?
The 2019 Stack Overflow Developer Survey Results Are InFind 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
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
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 allow me not have to search manually?
find
add a comment |
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 allow me not have to search manually?
find
Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549
– Jeff Schaller♦
Mar 29 at 18:31
2
You can also find it usinglocate
, which should be significantly faster, but only works if the file already existed whenupdatedb
was last run.
– Simon Richter
Mar 29 at 20:01
add a comment |
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 allow me not have to search manually?
find
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 allow me not have to search manually?
find
find
edited Apr 7 at 14:38
Rui F Ribeiro
42k1483142
42k1483142
asked Mar 29 at 18:27
PascLeRascPascLeRasc
1634
1634
Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549
– Jeff Schaller♦
Mar 29 at 18:31
2
You can also find it usinglocate
, which should be significantly faster, but only works if the file already existed whenupdatedb
was last run.
– Simon Richter
Mar 29 at 20:01
add a comment |
Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549
– Jeff Schaller♦
Mar 29 at 18:31
2
You can also find it usinglocate
, which should be significantly faster, but only works if the file already existed whenupdatedb
was last run.
– Simon Richter
Mar 29 at 20:01
Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549
– Jeff Schaller♦
Mar 29 at 18:31
Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549
– Jeff Schaller♦
Mar 29 at 18:31
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
Mar 29 at 20:01
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
Mar 29 at 20:01
add a comment |
2 Answers
2
active
oldest
votes
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).
add a comment |
Two ways (apart from using -path
):
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 expandto 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 asfind / -type d -name 'ABC_MPSC'
-exec sh -c 'test -f "$1"/ABC.jpg' sh ; -printLook 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.
add a comment |
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
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
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).
add a comment |
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).
add a comment |
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).
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).
edited Mar 29 at 18:40
answered Mar 29 at 18:30
Jeff Schaller♦Jeff Schaller
45k1164147
45k1164147
add a comment |
add a comment |
Two ways (apart from using -path
):
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 expandto 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 asfind / -type d -name 'ABC_MPSC'
-exec sh -c 'test -f "$1"/ABC.jpg' sh ; -printLook 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.
add a comment |
Two ways (apart from using -path
):
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 expandto 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 asfind / -type d -name 'ABC_MPSC'
-exec sh -c 'test -f "$1"/ABC.jpg' sh ; -printLook 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.
add a comment |
Two ways (apart from using -path
):
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 expandto 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 asfind / -type d -name 'ABC_MPSC'
-exec sh -c 'test -f "$1"/ABC.jpg' sh ; -printLook 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.
Two ways (apart from using -path
):
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 expandto 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 asfind / -type d -name 'ABC_MPSC'
-exec sh -c 'test -f "$1"/ABC.jpg' sh ; -printLook 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.
edited Mar 29 at 23:34
answered Mar 29 at 18:37
Kusalananda♦Kusalananda
141k17263439
141k17263439
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
Very similar: unix.stackexchange.com/q/342392/117549; also: unix.stackexchange.com/q/352844/117549
– Jeff Schaller♦
Mar 29 at 18:31
2
You can also find it using
locate
, which should be significantly faster, but only works if the file already existed whenupdatedb
was last run.– Simon Richter
Mar 29 at 20:01