0

この 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 が必要になります。

4

2 に答える 2

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
于 2013-02-15T03:10:48.233 に答える
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
于 2013-02-15T04:44:42.317 に答える