/dev/nullfind . -type d -exec mkdir -p $t_dir/tmp001/{} \;count=`find . -type d -exec ls -ld {} \; | wc -l `for ((i=2;i<=$count;i++));douser=`find . -ty_shell 复制文件 如何保持文件权限">
当前位置:   article > 正文

仅拷贝文件夹(保留属主,属组,权限)Linux Shell_shell 复制文件 如何保持文件权限

shell 复制文件 如何保持文件权限

求大佬优化一下 :)

#!/bin/bash

read -p "Enter absolute path:" o_dir
t_dir=`pwd`

cd $o_dir > /dev/null

find . -type d -exec mkdir -p $t_dir/tmp001/{} \;

count=`find . -type d -exec ls -ld {} \; | wc -l `


for ((i=2;i<=$count;i++));

do

user=`find . -type d -exec ls -ld {} \; | awk -F ' ' '{print $3}' | head -$i | tail -1`
group=`find . -type d -exec ls -ld {} \; | awk -F ' ' '{print $4}' | head -$i | tail -1`
dir=`find . -type d -exec ls -ld {} \; | awk -F ' ' '{print $9}' | head -$i | tail -1`
pwr=`find . -type d -exec ls -ld {} \; | awk -F ' ' '{print $1}' | head -$i | tail -1`

cd $t_dir/tmp001/ > /dev/null

chown $user:$group $dir

case $pwr in

        drwxrwxrwx.)

                chmod 777 $dir
                ;;

        drwxrwxr-x.)

                chmod 775 $dir
                ;;

        drwxr-xr-x.)

                chmod 755 $dir
                ;;

        drwxr-x---.)

                chmod 750 $dir
                ;;

        drwx------.)

                chmod 700 $dir
                ;;

        *)

                chmod 500 $dir
                ;;

esac

cd $o_dir > /dev/null

done


tar -zcPf $t_dir/path_list.tar.gz  $t_dir/tmp001/

mv $t_dir/tmp001 /tmp/
 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/263767
推荐阅读
相关标签
  

闽ICP备14008679号