创建可执行文件以复制文件夹并设置所有者

创建可执行文件以复制文件夹并设置所有者

我不是 (web) 服务器专家,所以我需要一些帮助来解决以下问题。我实在无法通过 Google 找到答案,可能是因为我使用了错误的关键字。

我想知道是否可以在服务器上的某个地方创建一个文件,我可以使用/调用该文件来执行多个命令,并且我可以“提供”一些额外的参数,如源、目标以及目标上文件的组/所有者。

我想要创建一个文件,复制一个文件夹的内容,将其放在另一个文件夹中,然后设置文件/文件夹的组/所有者,可能还会对目标中的某些文件夹进行 chmod。

我知道如何分别使用这些命令,但是是否可以将所有这些命令分组到一个文件中并使用一些参数执行该文件?

服务器运行的是 CentOS 6.0 (64 位)

答案1

例如,您可以使用 Bash 编写一个脚本,该脚本将按顺序执行所有命令和逻辑。互联网上有很多关于 Bash 脚本的精彩资料。

不要忘记设置脚本文件的执行权限(chmod +x filename.sh)并使用完整路径或以以下方式执行它:./filename.sh

答案2

我知道如何分别使用这些命令,但是是否可以将所有这些命令分组到一个文件中并使用一些参数执行该文件?

当然可以。您可以使用任何您喜欢/了解的脚本语言 bash/perl/php/ruby/etc。它可能类似于以下内容

#!bin/bash

src=$1
dst=$2
uid=$3
gid=$4
action=$5

if [ $# -le 4 ]
then
    echo "Usage: script.sh <source> <destination> <user owner> <group owner> <action>"
    exit
fi

if [ ! -d "${src}" ]
then
    echo "Source folder does not exist. Before proceed you must create it"
    exit
fi

...

case "$action" in
create)
   command1;
   command2;
   command3; 
;;  
delete)
   command1;
   command2;
   command3; 
;;
esac

相关内容