如何用bash重命名文档?

时间:2013-02-15 03:06:25

标签: bash rename hosts

我需要制作这个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。

2 个答案:

答案 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