linux下的mv命令可以批量移動(dòng)文件或文件夾:
創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站與策劃設(shè)計(jì),韓城網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:韓城等地區(qū)。韓城做網(wǎng)站價(jià)格咨詢:18982081108
批量移動(dòng)文件到home目錄: mv file1 file2 file3 /home/
批量移動(dòng)文件夾到home目錄: mv dir1/ dir2/ dir3/ ?/home/
批量移動(dòng)相同類型的文件或文件到到home目錄: mv dir* ?/home/
請(qǐng)參看 mv --help的幫助信息.
可以用mv -p命令。
如:mv -p /home/vechina/samples/csi8/test_1 test_2 test_3 /home/vechina/samples/csi10
其中:/home/vechina/samples/csi8/是原路徑;test_1、test_2、test_3是要移動(dòng)的文件;/home/vechina/samples/csi10是目標(biāo)路徑。
mv命令介紹:
命令語(yǔ)法:語(yǔ)法:mv[選項(xiàng)]源文件或目錄 目標(biāo)文件或目錄。
參數(shù)介紹:
-i:交互式操作。如果mv操作將導(dǎo)致對(duì)已存在的目標(biāo)文件的覆蓋,此時(shí)系統(tǒng)會(huì)詢問(wèn)是否覆蓋,用戶輸入‘y進(jìn)行覆蓋,輸入'n'則不覆蓋,這樣可以避免誤覆蓋文件。
-f:禁止交互式操作。在mv操作要覆蓋某已有的目標(biāo)文件或目錄時(shí)不給任何指示,默認(rèn)覆蓋。
如果所給目標(biāo)文件(不是目錄)已存在,此時(shí)該文件的內(nèi)容將后備新文件覆蓋,為防止用戶用mv命令破壞另一個(gè)文件,使用mv命令移動(dòng)文件時(shí),最好使用i選項(xiàng)。
-b:覆蓋文件前先對(duì)其進(jìn)行備份
-S或--suffix=后綴:不理會(huì)通常的備份后綴
-u或--update:移動(dòng)或覆蓋目的文件時(shí)若日期比目的文件舊,且目的文件已經(jīng)存在,則不執(zhí)行覆蓋文件命令
-t或--target-directory=目錄:移動(dòng)所以源參數(shù)到指定目錄
-T或--no-target-directory:將DEST作為普通文件
--help:顯示幫助信息
-v或--version:顯示版本幫助信息
--verbose:顯示執(zhí)行的詳細(xì)信息
mv 命令是一個(gè)與cp類似的命令,但是它并非創(chuàng)建文件或目錄的復(fù)制品/副本。不管你在使用什么版本的Linux系統(tǒng),mv 都默認(rèn)安裝在你的Linux系統(tǒng)上了。來(lái)看一下 mv 命令在日常操作中的一些例子。
1.移動(dòng)文件
移動(dòng)文件時(shí)需要注意的是文件的源地址和目標(biāo)地址必須不同。這里有個(gè)例子,想要將file_1.txt文件從當(dāng)前目錄移動(dòng)到其它目錄,以/home/pungki/為例,語(yǔ)法應(yīng)該如下:
$ mv file_1.txt /home/pungki/office
如我們所見(jiàn),當(dāng)我們移動(dòng) filetxt 文件時(shí),先前目錄的 file1.txt 就被刪除了。
2.移動(dòng)多個(gè)文件
如果想一次移動(dòng)多個(gè)文件,我們可以將他們放在一行并用空格分開(kāi)。
$ mv file_2.txt file_3.txt file_4.txt /home/pungki/office
如果你的文件有規(guī)律可循的話那么你就可以使用通配符。比如,為了移除所有以.txt為擴(kuò)展名的文件,我們可以用下面的命令:
$ mv *.txt /home/pungki/office
3.移動(dòng)目錄
不同于復(fù)制命令,用 mv 命令移動(dòng)目錄相當(dāng)直接。移動(dòng)目錄你可以使用不帶選項(xiàng)的 mv 命令。看下面的截圖就一目了然了。
4.重命名文件或目錄
我們也用 mv 命令來(lái)重命名文件或目錄。不過(guò)目標(biāo)位置和源位置必須相同才可以。然后文件名必須不同。
假定我們當(dāng)前所在目錄為/home/pungki/Documents,而我們想將file1.txt重命名為file2.txt。那么命令應(yīng)該如下:
$ mv file_1.txt file_2.txt
如果是絕對(duì)路徑,它應(yīng)該像下面這樣:
$ mv /home/pungki/Documents/file_1.txt /home/pungki/Documents/file_2.txt
5. 重命名目錄
上一段的規(guī)則同樣適用于目錄。請(qǐng)看這個(gè)例子:
$ mv directory_1/ directory_2/
6. 打印移動(dòng)信息
當(dāng)你移動(dòng)或重命名一大堆文件或目錄時(shí),你可能會(huì)想在不去目標(biāo)位置去查看的情況下知道你自己的命令是否成功地執(zhí)行了。這就要用到-v選項(xiàng)了。
$ mv -v *.txt /home/pungki/office
該方法同樣適用于目錄。
7. 使用交互模式
當(dāng)你將文件移動(dòng)到其它位置,而那個(gè)位置恰好有同樣的文件,這時(shí) mv 命令會(huì)覆蓋掉原來(lái)的文件。對(duì)于mv的這一行為一般不會(huì)有什么提示。如果想產(chǎn)生一個(gè)關(guān)于覆蓋文件的提示,我們可以使用-i選項(xiàng)。(譯注:通常發(fā)行版會(huì)通過(guò)alias命令,將-i作為默認(rèn)選項(xiàng),所以會(huì)有提示。)
假設(shè)我們想將 file1.txt 移動(dòng)到 /home/pungki/office。同時(shí),/home/pungki/office 目錄下已經(jīng)有file1.txt文件了。
$ mv -i file_1.txt /home/pungki/office
這個(gè)提示會(huì)讓我們知道目標(biāo)位置處file_1.txt的存在。如果我們按y鍵,那么那個(gè)文件將會(huì)被刪除,否則不會(huì)。
8. 使用更新選項(xiàng)
-i 選項(xiàng)會(huì)提示我們關(guān)于覆蓋文件的提示,而 -u 則只在源文件比目標(biāo)文件新時(shí)才執(zhí)行更新。讓我們看一看下面的例子:
假如 file1.txt 和 file2.txt有如下特點(diǎn):
File_1.txt has 84 bytes file size and it last modified time is 12:00
File_2.txt has 0 bytes file size and it last modified time is 11:59
我們想將它們移動(dòng)到 /home/pungki/office 目錄下。**但是目標(biāo)地址*已經(jīng)有file1.txt和file2.txt了。
我們用下面的命令將file1.txt 和file2.txt從當(dāng)前目錄移動(dòng)到/home/pungki/office
$ mv -uv *.txt /home/pungki/office
可以看到這些文件被移動(dòng)了。能移動(dòng)這些文件是因?yàn)樗鼈冏罱男薷臅r(shí)間戳比 /home/pungki/office 目錄中的文件新。
9.不要覆蓋任何已存在的文件
如果-i選項(xiàng)詢問(wèn)我們是否要覆蓋文件,那么 -n 選項(xiàng)將不會(huì)允許我們覆蓋任何已存在的文件。
繼續(xù)使用第8點(diǎn)中的例子,如果我們將-u 換成 -n同時(shí)加上-v選項(xiàng),那么我們會(huì)看到?jīng)]有任何文件移動(dòng)到了 /home/pungki/office 目錄下。
$ mv -vn *.txt /home/pungki/office
10. 復(fù)制時(shí)創(chuàng)建備份
默認(rèn)情況下,移動(dòng)文件將會(huì)覆蓋已存在的目標(biāo)文件。但是如果我們移動(dòng)錯(cuò)了文件而目標(biāo)文件已經(jīng)被新的文件覆蓋了,這時(shí)應(yīng)該怎么辦才好呢?有沒(méi)有一種方法可以恢復(fù)之前的文件呢?答案是肯定的。我們可以用-b選項(xiàng)。該選項(xiàng)會(huì)在新文件覆蓋舊文件時(shí)將舊文件做備份。這里我們還以第8點(diǎn)為例。
$ mv -bv *.txt /home/pungki/office
如截圖中所見(jiàn),在 /home/pungki/office 目錄下出現(xiàn)了名為file1.txt~ and file2.txt~ 的文件。那個(gè)波浪符號(hào)(~)意味著這些文件是備份文件。從它們的屬性中我們可以看到,這些文件比f(wàn)ile1.txt和file2.txt要舊。
Linux下修改文件名有mv和rename。 其中mv命令只能對(duì)單個(gè)文件重命名 , 這是mv命令和rename命令的在重命名方面的根本區(qū)別。
linux的rename命令有兩個(gè)版本,一個(gè)是c語(yǔ)言版本的,一個(gè)是perl語(yǔ)言版本的,判斷方法:
輸入man rename 看到第一行是:
RENAME(1) Linux Programmer’s Manual RENAME(1)
這個(gè)就是C語(yǔ)言版本的
而如果出現(xiàn):
RENAME(1) Perl Programmers Reference Guide RENAME(1) 則是Perl版本的了
C語(yǔ)言版本格式:rename 原字符串 新字符串 文件名
Perl語(yǔ)言版本格式:rename 's/原字符串/新字符串/' 文件名
rename支持正則表達(dá)式
例子:
字母的替換 rename "s/AA/aa/" * // 把文件名中的AA替換成aa
修改文件的后綴 rename "s//.html//.php/" * // 把.html 后綴的改成 .php后綴
批量添加文件后綴 rename "s/$//.txt/" * // 把所有的文件名都以txt結(jié)尾
批量刪除文件名 rename "s//.txt//" * // 把所有以.txt結(jié)尾的文件名的.txt刪掉
在文件夾shell下創(chuàng)建文件10個(gè)文件
touch tmp_{1..10}.txt
找到含有“_“”的文件夾。
find ./ -name "*_*"
讀取id, 用mv改名,$為自己理解為賦值后的id,格式為
linux 給文件改名的命令是mv命令
mv命令來(lái)為文件或目錄改名或?qū)⑽募梢粋€(gè)目錄移入另一個(gè)目錄中。該命令等同于DOS系統(tǒng)下的ren和move命令的組合。它的使用權(quán)限是所有用戶。命令詳細(xì)介紹可參考 Linux命令大全
單純的依靠mv命令做不到,需要腳本來(lái)實(shí)現(xiàn)
編寫腳本 rename 如下
#----------------------------------------------
#!/bin/sh
ls -l $1 | grep ^[^d] | awk '{print $9}'| while read line; do
do=`echo $line | grep $2`
if [ ! "$do" = "" ]; then
newname=`echo $line | sed 's/'$2'/'$3'/g'`
echo "rename $line to $newname ..."
mv $1/$line $1/$newname
fi
done
#------------------------------------------------
將以上保存為 rename文件,
然后運(yùn)行
chmod +x rename
使rename可運(yùn)行
然后按照如下格式執(zhí)行rename
假設(shè)rename在當(dāng)前路徑
$./rename [fullpathtofiles] .sql.cluster1 .sql
[fullpathtofiles] 指向你的BAOAN102671.sql.cluster1 這些文件的全路徑即可
參考以下我的演示 ,將具體路徑替換到你的即可,實(shí)際測(cè)試通過(guò)
--------------------------------
root@bogon~/testmv# ls
12343234234.sql.cluster1 323423423423.sql.cluster1 sdfdssddd.sql.cluster1
root@bogon~/testmv# cd ..
root@bogon~# ./rename ./testmv/ .sql.cluster1 .sql
rename 12343234234.sql.cluster1 to 12343234234.sql ...
rename 323423423423.sql.cluster1 to 323423423423.sql ...
rename sdfdssddd.sql.cluster1 to sdfdssddd.sql ...
root@bogon~# cd testmv
root@bogon~/testmv# ls
12343234234.sql 323423423423.sql sdfdssddd.sql
-----------------------------------------------------
新聞標(biāo)題:linux批量改mv命令,linux命令mv使用方法
本文地址:http://www.chinadenli.net/article34/dseoppe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、App設(shè)計(jì)、、靜態(tài)網(wǎng)站、定制網(wǎng)站、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)