gpt4 book ai didi

bash - 如何通过 "mySync leftdir rightdir"等特定命令使我的同步 bash 脚本可执行?

转载 作者:行者123 更新时间:2023-12-04 19:21:53 24 4
gpt4 key购买 nike

我正在为 Ubuntu 中的 Unix 创建一个同步两个目录的 bash 脚本。

我已经编写了同步程序,但我面临的问题是我需要通过命令行调用我的脚本:“ mySync -r leftdir rightdir ”或“ mySync -i leftdir rightdir ”我似乎没有这行得通。

-r (递归)将覆盖所有重复的文件夹。

-i 只有在用户同意的情况下才会覆盖重复的文件夹

问题是如何通过命令使我的脚本可执行?

如果选择了“-i”命令,我怎样才能让我的脚本在覆盖之前等待用户的接受?

在此先感谢您的帮助 。

代码是:

    #!/bin/bash

echo "hello,the directory must be on the Desktop. "
read -p "Please enter your username: " x3

read -p "First directory name: " x1
read -p "Second directory name: " x2

dir1="/home/$x3/Desktop/$x1/"
dir2="/home/$x3/Desktop/$x2/"

if [ -d $dir2 ]; then
cd "$dir1"

find . -print0 | while read -d $'\0' file; do
[ -e "$dir2/$file" ] || echo "$file"
done

cp -rupv $dir2* $dir1

else
echo Path Not found.. Check network status
fi


if [ -d $dir1 ]; then
cd "$dir2"
find . -print0 | while read -d $'\0' file; do
[ -e "$dir1/$file" ] || echo "$file"
done

cp -rupv $dir1* $dir2

else
echo Path Not found.. Check network status

fi

最佳答案

首先,你为什么不直接使用 rsync ?

如果你真的想自己做,我建议使用 getoptgetopts做选项解析。然后您可以根据这些选项控制执行...

要使脚本可执行,您可以使用 chmod:
$ chmod +x mySync

关于bash - 如何通过 "mySync leftdir rightdir"等特定命令使我的同步 bash 脚本可执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15325769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com