Zsh: source scripts recursively
up vote
5
down vote
favorite
I have ~/scripts/
folder that contains multiple subfolders with arbitrary directory levels.
This folder only for scripts that need to be sourced when start zsh
, how to recursively source all files under its folder and its subfolders in an short and effective way?
scripting zsh
add a comment |
up vote
5
down vote
favorite
I have ~/scripts/
folder that contains multiple subfolders with arbitrary directory levels.
This folder only for scripts that need to be sourced when start zsh
, how to recursively source all files under its folder and its subfolders in an short and effective way?
scripting zsh
add a comment |
up vote
5
down vote
favorite
up vote
5
down vote
favorite
I have ~/scripts/
folder that contains multiple subfolders with arbitrary directory levels.
This folder only for scripts that need to be sourced when start zsh
, how to recursively source all files under its folder and its subfolders in an short and effective way?
scripting zsh
I have ~/scripts/
folder that contains multiple subfolders with arbitrary directory levels.
This folder only for scripts that need to be sourced when start zsh
, how to recursively source all files under its folder and its subfolders in an short and effective way?
scripting zsh
scripting zsh
asked Nov 9 at 14:12
Tuyen Pham
432111
432111
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
7
down vote
accepted
Sourcing all non-hidden regular files in there, in collation order:
for f (~/scripts/**/*(N.)) . $f
I would suggest however that you name those files using a specific template like with a .zsh
extension (and use *.zsh
instead of *
above) to avoid problems if there are backup files lying about in there for instance.
Or you could at least exclude some common ones like file~
, file.dpkg-dist
, file.back
...:
set -o extendedglob
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak))(N.)) . $f
etc.
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak)))(N.)) . $f
. With.zsh
means<..>s/**/^*.zsh("~"|dpkg<...>
?
– Tuyen Pham
Nov 9 at 15:19
3
@TuyenPham No, there is no sense in combining them like that. It's about using a whitelist vs a blacklist. The whitelist is/*.zsh
, and the blacklist is/^*("~"|dpkg<...>)
. It's safer to use a whitelist, but if you have naming requirements that don't allow for requiring files to end in.zsh
, then you could at least opt for using a blacklist.
– JoL
Nov 9 at 16:38
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
7
down vote
accepted
Sourcing all non-hidden regular files in there, in collation order:
for f (~/scripts/**/*(N.)) . $f
I would suggest however that you name those files using a specific template like with a .zsh
extension (and use *.zsh
instead of *
above) to avoid problems if there are backup files lying about in there for instance.
Or you could at least exclude some common ones like file~
, file.dpkg-dist
, file.back
...:
set -o extendedglob
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak))(N.)) . $f
etc.
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak)))(N.)) . $f
. With.zsh
means<..>s/**/^*.zsh("~"|dpkg<...>
?
– Tuyen Pham
Nov 9 at 15:19
3
@TuyenPham No, there is no sense in combining them like that. It's about using a whitelist vs a blacklist. The whitelist is/*.zsh
, and the blacklist is/^*("~"|dpkg<...>)
. It's safer to use a whitelist, but if you have naming requirements that don't allow for requiring files to end in.zsh
, then you could at least opt for using a blacklist.
– JoL
Nov 9 at 16:38
add a comment |
up vote
7
down vote
accepted
Sourcing all non-hidden regular files in there, in collation order:
for f (~/scripts/**/*(N.)) . $f
I would suggest however that you name those files using a specific template like with a .zsh
extension (and use *.zsh
instead of *
above) to avoid problems if there are backup files lying about in there for instance.
Or you could at least exclude some common ones like file~
, file.dpkg-dist
, file.back
...:
set -o extendedglob
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak))(N.)) . $f
etc.
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak)))(N.)) . $f
. With.zsh
means<..>s/**/^*.zsh("~"|dpkg<...>
?
– Tuyen Pham
Nov 9 at 15:19
3
@TuyenPham No, there is no sense in combining them like that. It's about using a whitelist vs a blacklist. The whitelist is/*.zsh
, and the blacklist is/^*("~"|dpkg<...>)
. It's safer to use a whitelist, but if you have naming requirements that don't allow for requiring files to end in.zsh
, then you could at least opt for using a blacklist.
– JoL
Nov 9 at 16:38
add a comment |
up vote
7
down vote
accepted
up vote
7
down vote
accepted
Sourcing all non-hidden regular files in there, in collation order:
for f (~/scripts/**/*(N.)) . $f
I would suggest however that you name those files using a specific template like with a .zsh
extension (and use *.zsh
instead of *
above) to avoid problems if there are backup files lying about in there for instance.
Or you could at least exclude some common ones like file~
, file.dpkg-dist
, file.back
...:
set -o extendedglob
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak))(N.)) . $f
etc.
Sourcing all non-hidden regular files in there, in collation order:
for f (~/scripts/**/*(N.)) . $f
I would suggest however that you name those files using a specific template like with a .zsh
extension (and use *.zsh
instead of *
above) to avoid problems if there are backup files lying about in there for instance.
Or you could at least exclude some common ones like file~
, file.dpkg-dist
, file.back
...:
set -o extendedglob
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak))(N.)) . $f
etc.
edited Nov 9 at 16:12
answered Nov 9 at 14:30
Stéphane Chazelas
294k54555898
294k54555898
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak)))(N.)) . $f
. With.zsh
means<..>s/**/^*.zsh("~"|dpkg<...>
?
– Tuyen Pham
Nov 9 at 15:19
3
@TuyenPham No, there is no sense in combining them like that. It's about using a whitelist vs a blacklist. The whitelist is/*.zsh
, and the blacklist is/^*("~"|dpkg<...>)
. It's safer to use a whitelist, but if you have naming requirements that don't allow for requiring files to end in.zsh
, then you could at least opt for using a blacklist.
– JoL
Nov 9 at 16:38
add a comment |
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak)))(N.)) . $f
. With.zsh
means<..>s/**/^*.zsh("~"|dpkg<...>
?
– Tuyen Pham
Nov 9 at 15:19
3
@TuyenPham No, there is no sense in combining them like that. It's about using a whitelist vs a blacklist. The whitelist is/*.zsh
, and the blacklist is/^*("~"|dpkg<...>)
. It's safer to use a whitelist, but if you have naming requirements that don't allow for requiring files to end in.zsh
, then you could at least opt for using a blacklist.
– JoL
Nov 9 at 16:38
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak)))(N.)) . $f
. With .zsh
means <..>s/**/^*.zsh("~"|dpkg<...>
?– Tuyen Pham
Nov 9 at 15:19
for f (~/scripts/**/^*("~"|dpkg-(dist|old|new)|.(tmp|back|bak)))(N.)) . $f
. With .zsh
means <..>s/**/^*.zsh("~"|dpkg<...>
?– Tuyen Pham
Nov 9 at 15:19
3
3
@TuyenPham No, there is no sense in combining them like that. It's about using a whitelist vs a blacklist. The whitelist is
/*.zsh
, and the blacklist is /^*("~"|dpkg<...>)
. It's safer to use a whitelist, but if you have naming requirements that don't allow for requiring files to end in .zsh
, then you could at least opt for using a blacklist.– JoL
Nov 9 at 16:38
@TuyenPham No, there is no sense in combining them like that. It's about using a whitelist vs a blacklist. The whitelist is
/*.zsh
, and the blacklist is /^*("~"|dpkg<...>)
. It's safer to use a whitelist, but if you have naming requirements that don't allow for requiring files to end in .zsh
, then you could at least opt for using a blacklist.– JoL
Nov 9 at 16:38
add a comment |
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%2f480766%2fzsh-source-scripts-recursively%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