Using “find” to delete files with a pattern of underscore/letters The 2019 Stack Overflow Developer Survey Results Are InUsing find to find symlinks that point to a certain pattern of filesFind a file where name starts with a capital letterFind files that end with numberFind files whose name is 4 characters longUtilizing The 'find' Utility - Wrong Pattern?Using basename to strip file extension and search for files with the same nameDelete multiple patterns of files using one command (find)How to search files by directory and file name combo patternFind files matching template and removeIs there a way to delete all files/directories created by program?

What to do when moving next to a bird sanctuary with a loosely-domesticated cat?

Protecting Dualbooting Windows from dangerous code (like rm -rf)

How to save as into a customized destination on macOS?

Why did Acorn's A3000 have red function keys?

Why isn't the circumferential light around the M87 black hole's event horizon symmetric?

How technical should a Scrum Master be to effectively remove impediments?

Geography at the pixel level

Resizing object distorts it (Illustrator CC 2018)

How can I autofill dates in Excel excluding Sunday?

Identify boardgame from Big movie

Loose spokes after only a few rides

Are there incongruent pythagorean triangles with the same perimeter and same area?

What does ひと匙 mean in this manga and has it been used colloquially?

Deal with toxic manager when you can't quit

Why is the maximum length of OpenWrt’s root password 8 characters?

Can a flute soloist sit?

Button changing it's text & action. Good or terrible?

Why is the Constellation's nose gear so long?

How to notate time signature switching consistently every measure

Are spiders unable to hurt humans, especially very small spiders?

What could be the right powersource for 15 seconds lifespan disposable giant chainsaw?

Can someone be penalized for an "unlawful" act if no penalty is specified?

slides for 30min~1hr skype tenure track application interview

If a Druid sees an animal’s corpse, can they Wild Shape into that animal?



Using “find” to delete files with a pattern of underscore/letters



The 2019 Stack Overflow Developer Survey Results Are InUsing find to find symlinks that point to a certain pattern of filesFind a file where name starts with a capital letterFind files that end with numberFind files whose name is 4 characters longUtilizing The 'find' Utility - Wrong Pattern?Using basename to strip file extension and search for files with the same nameDelete multiple patterns of files using one command (find)How to search files by directory and file name combo patternFind files matching template and removeIs there a way to delete all files/directories created by program?



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








0















Is there a way to find and remove files with a pattern like this (where the pattern is only that there are two underscores in the file name, separated by letters or numbers)



ex. /file_name_name



I tried to use find . -name '*_*_' -delete to find those files, but no luck. Perhaps because the files are symlinks to directories?










share|improve this question









New contributor




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















  • 2





    If you don't use -delete, does it return the files?

    – Nasir Riley
    2 days ago











  • It does not sort out the files with that pattern, it shows any file that has an underscore and letters (like this- /1_name). I just want the files with two underscores separated with letters...

    – David Norden
    2 days ago






  • 1





    If I'm reading your intentions correctly, you want to find filenames that have two underscores in them; your initial effort is probably failing because you're asking that the filename ends with an underscore -- you'd want to add a trailing *. You'd also want to test to see whether a file named file__two-underscores counts and is matched, or not.

    – Jeff Schaller
    2 days ago











  • Thanks, you are completely right! It is working now.

    – David Norden
    yesterday

















0















Is there a way to find and remove files with a pattern like this (where the pattern is only that there are two underscores in the file name, separated by letters or numbers)



ex. /file_name_name



I tried to use find . -name '*_*_' -delete to find those files, but no luck. Perhaps because the files are symlinks to directories?










share|improve this question









New contributor




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















  • 2





    If you don't use -delete, does it return the files?

    – Nasir Riley
    2 days ago











  • It does not sort out the files with that pattern, it shows any file that has an underscore and letters (like this- /1_name). I just want the files with two underscores separated with letters...

    – David Norden
    2 days ago






  • 1





    If I'm reading your intentions correctly, you want to find filenames that have two underscores in them; your initial effort is probably failing because you're asking that the filename ends with an underscore -- you'd want to add a trailing *. You'd also want to test to see whether a file named file__two-underscores counts and is matched, or not.

    – Jeff Schaller
    2 days ago











  • Thanks, you are completely right! It is working now.

    – David Norden
    yesterday













0












0








0








Is there a way to find and remove files with a pattern like this (where the pattern is only that there are two underscores in the file name, separated by letters or numbers)



ex. /file_name_name



I tried to use find . -name '*_*_' -delete to find those files, but no luck. Perhaps because the files are symlinks to directories?










share|improve this question









New contributor




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












Is there a way to find and remove files with a pattern like this (where the pattern is only that there are two underscores in the file name, separated by letters or numbers)



ex. /file_name_name



I tried to use find . -name '*_*_' -delete to find those files, but no luck. Perhaps because the files are symlinks to directories?







find filenames






share|improve this question









New contributor




David Norden 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




David Norden 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








edited yesterday









Sparhawk

10.3k744101




10.3k744101






New contributor




David Norden 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









David NordenDavid Norden

1




1




New contributor




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





New contributor





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






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







  • 2





    If you don't use -delete, does it return the files?

    – Nasir Riley
    2 days ago











  • It does not sort out the files with that pattern, it shows any file that has an underscore and letters (like this- /1_name). I just want the files with two underscores separated with letters...

    – David Norden
    2 days ago






  • 1





    If I'm reading your intentions correctly, you want to find filenames that have two underscores in them; your initial effort is probably failing because you're asking that the filename ends with an underscore -- you'd want to add a trailing *. You'd also want to test to see whether a file named file__two-underscores counts and is matched, or not.

    – Jeff Schaller
    2 days ago











  • Thanks, you are completely right! It is working now.

    – David Norden
    yesterday












  • 2





    If you don't use -delete, does it return the files?

    – Nasir Riley
    2 days ago











  • It does not sort out the files with that pattern, it shows any file that has an underscore and letters (like this- /1_name). I just want the files with two underscores separated with letters...

    – David Norden
    2 days ago






  • 1





    If I'm reading your intentions correctly, you want to find filenames that have two underscores in them; your initial effort is probably failing because you're asking that the filename ends with an underscore -- you'd want to add a trailing *. You'd also want to test to see whether a file named file__two-underscores counts and is matched, or not.

    – Jeff Schaller
    2 days ago











  • Thanks, you are completely right! It is working now.

    – David Norden
    yesterday







2




2





If you don't use -delete, does it return the files?

– Nasir Riley
2 days ago





If you don't use -delete, does it return the files?

– Nasir Riley
2 days ago













It does not sort out the files with that pattern, it shows any file that has an underscore and letters (like this- /1_name). I just want the files with two underscores separated with letters...

– David Norden
2 days ago





It does not sort out the files with that pattern, it shows any file that has an underscore and letters (like this- /1_name). I just want the files with two underscores separated with letters...

– David Norden
2 days ago




1




1





If I'm reading your intentions correctly, you want to find filenames that have two underscores in them; your initial effort is probably failing because you're asking that the filename ends with an underscore -- you'd want to add a trailing *. You'd also want to test to see whether a file named file__two-underscores counts and is matched, or not.

– Jeff Schaller
2 days ago





If I'm reading your intentions correctly, you want to find filenames that have two underscores in them; your initial effort is probably failing because you're asking that the filename ends with an underscore -- you'd want to add a trailing *. You'd also want to test to see whether a file named file__two-underscores counts and is matched, or not.

– Jeff Schaller
2 days ago













Thanks, you are completely right! It is working now.

– David Norden
yesterday





Thanks, you are completely right! It is working now.

– David Norden
yesterday










1 Answer
1






active

oldest

votes


















1














Your filename globbing pattern is almost correct for detecting names that have at least two underscores, but you are forcing the names to have an underscore at the very end.



You should be ok if you just add a final * at the end of the pattern:



$ find . -name '*_*_*'
./file__name
./a_file_name
./more_file_name_here


To explicitly not match names with more than two underscores:



$ find . -name '*_*_*' ! -name '*_*_*_*'
./file__name
./a_file_name


The second part here, -name '*_*_*_*', would match any name with three or more underscores, and the preceding ! would negate the sense of the match.



Note that a find expression without -type will match the names of any type of file, that is, it may match the names of directories, named pipes, sockets, device files etc.



To additionally only match regular files add -type f, or you could use ! -type d to avoid matching directory names. Use -type l to to match symbolic links.



The final find command may look like:



find . -type l -name '*_*_*' ! -name '*_*_*_*' -delete


This would remove symbolic links found in the current directory, or below, whose names include exactly two underscores. The targets of the symbolic links would not be affected, unless they themselves are symbolic links with names that match the criteria and are located under the current directory.






share|improve this answer

























  • Super! Thanks a lot, that worked like a charm!

    – David Norden
    yesterday











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



);






David Norden 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%2f511333%2fusing-find-to-delete-files-with-a-pattern-of-underscore-letters%23new-answer', 'question_page');

);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









1














Your filename globbing pattern is almost correct for detecting names that have at least two underscores, but you are forcing the names to have an underscore at the very end.



You should be ok if you just add a final * at the end of the pattern:



$ find . -name '*_*_*'
./file__name
./a_file_name
./more_file_name_here


To explicitly not match names with more than two underscores:



$ find . -name '*_*_*' ! -name '*_*_*_*'
./file__name
./a_file_name


The second part here, -name '*_*_*_*', would match any name with three or more underscores, and the preceding ! would negate the sense of the match.



Note that a find expression without -type will match the names of any type of file, that is, it may match the names of directories, named pipes, sockets, device files etc.



To additionally only match regular files add -type f, or you could use ! -type d to avoid matching directory names. Use -type l to to match symbolic links.



The final find command may look like:



find . -type l -name '*_*_*' ! -name '*_*_*_*' -delete


This would remove symbolic links found in the current directory, or below, whose names include exactly two underscores. The targets of the symbolic links would not be affected, unless they themselves are symbolic links with names that match the criteria and are located under the current directory.






share|improve this answer

























  • Super! Thanks a lot, that worked like a charm!

    – David Norden
    yesterday















1














Your filename globbing pattern is almost correct for detecting names that have at least two underscores, but you are forcing the names to have an underscore at the very end.



You should be ok if you just add a final * at the end of the pattern:



$ find . -name '*_*_*'
./file__name
./a_file_name
./more_file_name_here


To explicitly not match names with more than two underscores:



$ find . -name '*_*_*' ! -name '*_*_*_*'
./file__name
./a_file_name


The second part here, -name '*_*_*_*', would match any name with three or more underscores, and the preceding ! would negate the sense of the match.



Note that a find expression without -type will match the names of any type of file, that is, it may match the names of directories, named pipes, sockets, device files etc.



To additionally only match regular files add -type f, or you could use ! -type d to avoid matching directory names. Use -type l to to match symbolic links.



The final find command may look like:



find . -type l -name '*_*_*' ! -name '*_*_*_*' -delete


This would remove symbolic links found in the current directory, or below, whose names include exactly two underscores. The targets of the symbolic links would not be affected, unless they themselves are symbolic links with names that match the criteria and are located under the current directory.






share|improve this answer

























  • Super! Thanks a lot, that worked like a charm!

    – David Norden
    yesterday













1












1








1







Your filename globbing pattern is almost correct for detecting names that have at least two underscores, but you are forcing the names to have an underscore at the very end.



You should be ok if you just add a final * at the end of the pattern:



$ find . -name '*_*_*'
./file__name
./a_file_name
./more_file_name_here


To explicitly not match names with more than two underscores:



$ find . -name '*_*_*' ! -name '*_*_*_*'
./file__name
./a_file_name


The second part here, -name '*_*_*_*', would match any name with three or more underscores, and the preceding ! would negate the sense of the match.



Note that a find expression without -type will match the names of any type of file, that is, it may match the names of directories, named pipes, sockets, device files etc.



To additionally only match regular files add -type f, or you could use ! -type d to avoid matching directory names. Use -type l to to match symbolic links.



The final find command may look like:



find . -type l -name '*_*_*' ! -name '*_*_*_*' -delete


This would remove symbolic links found in the current directory, or below, whose names include exactly two underscores. The targets of the symbolic links would not be affected, unless they themselves are symbolic links with names that match the criteria and are located under the current directory.






share|improve this answer















Your filename globbing pattern is almost correct for detecting names that have at least two underscores, but you are forcing the names to have an underscore at the very end.



You should be ok if you just add a final * at the end of the pattern:



$ find . -name '*_*_*'
./file__name
./a_file_name
./more_file_name_here


To explicitly not match names with more than two underscores:



$ find . -name '*_*_*' ! -name '*_*_*_*'
./file__name
./a_file_name


The second part here, -name '*_*_*_*', would match any name with three or more underscores, and the preceding ! would negate the sense of the match.



Note that a find expression without -type will match the names of any type of file, that is, it may match the names of directories, named pipes, sockets, device files etc.



To additionally only match regular files add -type f, or you could use ! -type d to avoid matching directory names. Use -type l to to match symbolic links.



The final find command may look like:



find . -type l -name '*_*_*' ! -name '*_*_*_*' -delete


This would remove symbolic links found in the current directory, or below, whose names include exactly two underscores. The targets of the symbolic links would not be affected, unless they themselves are symbolic links with names that match the criteria and are located under the current directory.







share|improve this answer














share|improve this answer



share|improve this answer








edited yesterday

























answered yesterday









KusalanandaKusalananda

141k17262438




141k17262438












  • Super! Thanks a lot, that worked like a charm!

    – David Norden
    yesterday

















  • Super! Thanks a lot, that worked like a charm!

    – David Norden
    yesterday
















Super! Thanks a lot, that worked like a charm!

– David Norden
yesterday





Super! Thanks a lot, that worked like a charm!

– David Norden
yesterday










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









draft saved

draft discarded


















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












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











David Norden 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%2f511333%2fusing-find-to-delete-files-with-a-pattern-of-underscore-letters%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







-filenames, find

Popular posts from this blog

Frič See also Navigation menuinternal link

Identify plant with long narrow paired leaves and reddish stems Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern) Announcing the arrival of Valued Associate #679: Cesar Manara Unicorn Meta Zoo #1: Why another podcast?What is this plant with long sharp leaves? Is it a weed?What is this 3ft high, stalky plant, with mid sized narrow leaves?What is this young shrub with opposite ovate, crenate leaves and reddish stems?What is this plant with large broad serrated leaves?Identify this upright branching weed with long leaves and reddish stemsPlease help me identify this bulbous plant with long, broad leaves and white flowersWhat is this small annual with narrow gray/green leaves and rust colored daisy-type flowers?What is this chilli plant?Does anyone know what type of chilli plant this is?Help identify this plant

fontconfig warning: “/etc/fonts/fonts.conf”, line 100: unknown “element blank” The 2019 Stack Overflow Developer Survey Results Are In“tar: unrecognized option --warning” during 'apt-get install'How to fix Fontconfig errorHow do I figure out which font file is chosen for a system generic font alias?Why are some apt-get-installed fonts being ignored by fc-list, xfontsel, etc?Reload settings in /etc/fonts/conf.dTaking 30 seconds longer to boot after upgrade from jessie to stretchHow to match multiple font names with a single <match> element?Adding a custom font to fontconfigRemoving fonts from fontconfig <match> resultsBroken fonts after upgrading Firefox ESR to latest Firefox