summaryrefslogtreecommitdiff
path: root/plugins/perms/perms.plugin.zsh
diff options
context:
space:
mode:
authorAriel Rivas <arielcrivas@gmail.com>2016-09-19 23:57:51 -0300
committerRobby Russell <robby@planetargon.com>2016-09-19 19:57:51 -0700
commitcb60cfc7bdc7745dd48afe265df3a13f9cd3e54d (patch)
treef54498cbe65cb8d9c474f2be35db20c357e0c764 /plugins/perms/perms.plugin.zsh
parent63d300edb04e1c2c2eea888f3085836bc9b580f7 (diff)
downloadzsh-cb60cfc7bdc7745dd48afe265df3a13f9cd3e54d.tar.gz
zsh-cb60cfc7bdc7745dd48afe265df3a13f9cd3e54d.tar.bz2
zsh-cb60cfc7bdc7745dd48afe265df3a13f9cd3e54d.zip
Avoid unnecesary processing... (#5352)
by discarding directories or files with permissions already correctly set
Diffstat (limited to 'plugins/perms/perms.plugin.zsh')
-rw-r--r--plugins/perms/perms.plugin.zsh12
1 files changed, 6 insertions, 6 deletions
diff --git a/plugins/perms/perms.plugin.zsh b/plugins/perms/perms.plugin.zsh
index 81f56d577..7cdebab7f 100644
--- a/plugins/perms/perms.plugin.zsh
+++ b/plugins/perms/perms.plugin.zsh
@@ -6,10 +6,10 @@
### Aliases
# Set all files' permissions to 644 recursively in a directory
-alias set644='find . -type f -print0 | xargs -0 chmod 644'
+alias set644='find . -type f ! -perm 644 -print0 | xargs -0 chmod 644'
# Set all directories' permissions to 755 recursively in a directory
-alias set755='find . -type d -print0 | xargs -0 chmod 755'
+alias set755='find . -type d ! -perm 755 -print0 | xargs -0 chmod 755'
### Functions
@@ -63,14 +63,14 @@ EOF
exit_status=0;
if [[ $use_slow == true ]]; then
# Process directories first so non-traversable ones are fixed as we go
- find "$target" -type d -exec chmod $chmod_opts 755 {} \;
+ find "$target" -type d ! -perm 755 -exec chmod $chmod_opts 755 {} \;
if [[ $? != 0 ]]; then exit_status=$?; fi
- find "$target" -type f -exec chmod $chmod_opts 644 {} \;
+ find "$target" -type f ! -perm 644 -exec chmod $chmod_opts 644 {} \;
if [[ $? != 0 ]]; then exit_status=$?; fi
else
- find "$target" -type d -print0 | xargs -0 chmod $chmod_opts 755
+ find "$target" -type d ! -perm 755 -print0 | xargs -0 chmod $chmod_opts 755
if [[ $? != 0 ]]; then exit_status=$?; fi
- find "$target" -type f -print0 | xargs -0 chmod $chmod_opts 644
+ find "$target" -type f ! -perm 644 -print0 | xargs -0 chmod $chmod_opts 644
if [[ $? != 0 ]]; then exit_status=$?; fi
fi
echo "Complete"