我知道一个事实,这将是一件非常简单的事情,我将错过最基本的东西,但我无法理解这一点。在bash循环中增加计数
file=($(find $DIRECTORY -maxdepth 1 -type f))
total=$(find $DIRECTORY -type f | wc -l)
count=0
while [ "$count" -lt "$total" ]
do
for f in "$file";
do
echo -n "Would you like to copy $file? "
read yn
case $yn in
Y | y)
cp $f $TARGET
chmod =r $TARGET/$(basename $file)
count=$((count + 1))
;;
N | n)
echo "skipping"
count=$((count + 1))
;;
*) echo "Please enter Y or N"
exit 1
;;
esac
done
done
(抱歉关于格式化)。
基本上它在目前
您输入源文件和目标文件这样做。正常工作
$ ./script.sh ~/work ~/folder
Created target directory.
Would you like to copy /home/USER/work/cash.sh?
那么你要么型y/n
其中任何只给出了同样的答复。
$ ./script.sh ~/work ~/folder
target directory exists, starting copy
Would you like to copy /home/USER/work/cash.sh? y
Would you like to copy /home/USER/work/cash.sh? y
基本上它复制cash.sh文件,它知道有2个目录中的文件,它只是不跳到下一个文件,并保持在相同的一个,我不知道如何来解决这个问题。
老实说,在过去的几个小时里我一直盯着这看,它让我疯狂,任何事情都会有帮助。提前致谢。
如果要复制目录中的所有文件,则需要在副本中添加-r标志。 -r标志表示recrusive – ryekayo
我需要能够逐一复制它们,并让用户决定是否要跳过一个文件或复制它。这仍然适用? – user3381055
Ahhh对不起,没有它在那种情况下。递归标志只会简单地复制目录中的所有内容。 – ryekayo