【发布时间】:2020-06-12 08:55:45
【问题描述】:
我有一个 bash 脚本,它接受文件/文件夹的参数、编号的权限、用户和组。
它确定路径变量是文件还是文件夹,并相应地设置权限。
问题是当我传入一个文件夹时,它会将中的文件和文件夹本身设置为新用户和组。
如何只设置循环中的文件而不是文件夹
#!/bin/bash
path=$1
ocatal=$2
user=$3
group=$4
GREEN='\033[0;32m'
RED='\033[0;31m'
if [ $2 -gt 766 ]
then
tput setaf 1
echo -e "${RED}777 is not allowed!!! :-("
tput sgr0
exit 1
else
if [ -f "$path" ]
then
chmod $2 $1
chown ${3:=$(/usr/bin/id -run)}:$4 $1
tput setaf 2
echo Permission set to $2
echo User set to $3
echo Group set to $4
echo `ls -l $1`
else
for f in $path/*
do
chmod $2 $f
chown ${3:=$(/usr/bin/id -run)}:$4 $f
tput setaf 2
echo Permission set to $2
echo User set to $3
echo Group set to $4
done
echo `ls -l $1`
fi
exit 0
fi
【问题讨论】:
-
"echo `ls -l $1`" 只是对
echo的无用使用,只是ls -l "$1"
标签: linux bash file-permissions