我需要制作这个bash脚本:
#!bin/bash
echo "Checking if root…."
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo "Not running as root"
exit
fi
echo -ne "Downloading NEW hosts blocking file: "
wget -qO /tmp/hosts.txt http://deathsrepo.webege.com/hosts.txt
echo "DONE!"
mv /tmp/hosts.text -b etc/
wget -qO /tmp/hosts.bak http://deathsrepo.webege.com/hosts.bak
mv /tmp/hosts.bak -b etc/
rename .txt . *.text
能够将hosts.text重命名为hosts。此外,当删除此包时,我需要将hosts.bak命名为hosts。
答案 0 :(得分:0)
要重命名文件,只需移动它:
mv hosts.text /etc/hosts
如果你的目的地是一个目录,你的文件将移入其中,名称不变:
mv hosts.text /etc/ # file is moved to /etc/hosts.text
如果目标是文件,并且目标文件存在,则源将移动到指定的目标文件,并覆盖该目标的文件:
mv hosts.text /etc/hosts # file is moved and renamed to /etc/hosts
如果目的地不存在且缺少尾部斜杠,则您的文件将重命名为目的地:
mv hosts.text foobar.txt # file is renamed to foobar.txt
答案 1 :(得分:0)
1 - 删除原来的主机
rm /etc/hosts
2 - 重命名 hosts.text:
mv /tmp/hosts.text /tmp/hosts
3 - 将 hosts.text 移至 / etc:
mv /tmp/hosts.text /etc
您可以使用 mv 同时移动和重命名。我还建议进行备份,而不是删除原始主机:
mv /etc/hosts /etc/hosts.bak # Make a backup
mv /tmp/hosts.text /etc/hosts # Move and rename
我没有真正得到你想要做的,但我认为你的完整脚本会变成这样:
#!bin/bash
echo "Checking if root…."
if [[ $(/usr/bin/id -u) -ne 0 ]]; then
echo "Not running as root"
exit
fi
echo -ne "Downloading NEW hosts blocking file: "
wget -qO /tmp/hosts.txt http://deathsrepo.webege.com/hosts.txt
echo "DONE!"
mv /tmp/hosts.txt /etc/hosts # replace original hosts with downloaded hosts.txt
wget -qO /tmp/hosts.bak http://deathsrepo.webege.com/hosts.bak
mv /tmp/hosts.bak /etc # move downloaded hosts.bak to /etc