仅拷贝文件夹(保留属主,属组,权限)Linux 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/
 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值