I want to create soft links (ln -s
) to folder2
of all the files that contain *foo*
in its name, and can be found in some or all the subdirectories of folder1
.
I’ve tried it with for
, find
, and find -exec ln
, and a combination of them, but all I get is a broken link named *foo*
or a link to everything inside folder1
Advertisement
Answer
With globstar at one stroke.
shopt -s globstar cd folder2 ln -s ../folder1/**/*foo* .
cd
is needed for relative links (this applies for below answers that utilizes find too). If you want absolute links, do
shopt -s globstar ln -s /where/is/it/folder1/**/*foo* folder2/