/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 复制文件 如何保持文件权限">
赞
踩
求大佬优化一下 :)
#!/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/
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。