递归修改子目录及文件的权限

背景:当我们的虚拟机和windows系统共享windows上的一个目录(记为:A)时,把该目录下的目录(记为B)移动(mv)到linux下的任意目录下,这个目录B及下面的子目录或文件的权限都是rwx(777),这是他们在windows下的权限。因此用ll命令把这些文件列出来时,就会发现明显的不一样,原因就是权限不同。

 

因此,我写了个bash 脚本,递归的将这些移动过来的文件的权限修改为默认值。代码如下:

#!/bin/bash

# 修改指定目录的子目录或文件到默认权限
# 下面的函数是递归修改子目录及文件的权限,但是还有一种方法就是复制整个目录,权限会自然就设置成默认的了
function chmodDefault()
{
	if [ -d "$1" ]; then
		chmod 755 "$1"
	fi

	for i in $1/*
	do
		if [ -f "$i" ]; then
			chmod 644 "$i"
		elif [ -d "$i" ]; then
			chmod 755 "$i"
			chmodDefault "$i"
		fi
	done
}

if [ "$1" = "" ]; then
	echo "Usage: sh $0 <dir>"
else
	chmodDefault "$1"
fi


经测试,发现这个脚本还是正确的。但是又发现了另外一种改变移动过来的目录的权限的方法,就是用复制命令(cp),这相当于以当前用户的身份新建目录,所以权限自然地就是默认值了!

如:cp /mnt/hgfs/A/aa /home/zcm/download/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值