2013-02-15 86 views
0

我需要這個bash腳本:如何用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.bak命名爲主機。

+0

你指的是什麼「包裝」? – vezult 2013-02-15 03:13:06

回答

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 
+0

我不能這樣做,這是在iPhones,iPod和iPad上完成的我需要將hosts.text重命名爲主機,並且我將在重命名主機之前將腳本移除到原始主機文本文檔。文本 – user1996894 2013-02-15 03:16:02

+0

@ user1996894:你需要在你的問題中概述你的環境的限制。正如你的問題所表達的那樣,我的回答完全有效。 – vezult 2013-06-09 18:21:04

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