做網(wǎng)站需要找人優(yōu)化嗎百度app下載安裝官方免費(fèi)下載
Linux系統(tǒng)之mv命令的基本使用
- 一、mv命令介紹
- 1. mv命令簡介
- 2. mv命令的使用結(jié)果
- 二、mv命令的使用幫助
- 1. 在命令行的幫助信息
- 2. mv常用選項(xiàng)
- 三、mv命令的基本使用
- 1. 創(chuàng)建源目錄和目標(biāo)目錄
- 2. 新建測試文件
- 3. 將源目錄文件復(fù)制到目標(biāo)目錄
- 4. 將文件進(jìn)行改名
- 5. 將目錄的所有文件轉(zhuǎn)移到目標(biāo)目錄
- 6. 移動(dòng)多個(gè)文件到目標(biāo)目標(biāo)
- 7. 移動(dòng)目錄
- 8. 覆蓋文件
- 四、mv的日常使用
- 1. 提示是否覆蓋文件
- 2. 覆蓋文件時(shí)對(duì)源文件備份
- 3. 強(qiáng)制覆蓋文件
- 4. 打印轉(zhuǎn)移信息
- 5. 源文件比目標(biāo)文件新時(shí)才執(zhí)行更新
- 五、注意事項(xiàng)
一、mv命令介紹
1. mv命令簡介
mv
命令主要是在Linux系統(tǒng)中用來對(duì)文件或目錄重新命名,或者將文件從一個(gè)目錄移到另一個(gè)目錄中。source表示源文件或目錄,target表示目標(biāo)文件或目錄。如果將一個(gè)文件移到一個(gè)已經(jīng)存在的目標(biāo)文件中,則目標(biāo)文件的內(nèi)容將被覆蓋。
2. mv命令的使用結(jié)果
- mv命令可以用來將源文件移至一個(gè)目標(biāo)文件中,或?qū)⒁唤M文件移至一個(gè)目標(biāo)目錄中。源文件被移至目標(biāo)文件有不同的結(jié)果:
1.如果目標(biāo)文件是到某一目錄文件的路徑,源文件會(huì)被移到此目錄下,且文件名不變。
2.如果目標(biāo)文件不是目錄文件,則源文件名(只能有一個(gè))會(huì)變?yōu)榇四繕?biāo)文件名,并覆蓋己存在的同名文件。
3.如果源文件和目標(biāo)文件在同一個(gè)目錄下,mv的作用就是改文件名。
4.當(dāng)目標(biāo)文件是目錄時(shí),源文件或目錄參數(shù)可以有多個(gè),則所有的源文件都會(huì)被移至目標(biāo)目錄中。所有移到該目錄下的文件都將保留以前的文件名。
二、mv命令的使用幫助
1. 在命令行的幫助信息
在命令行的,
mv --help
顯示mv的幫助信息。
[root@jeven ~]# mv --help
Usage: mv [OPTION]... [-T] SOURCE DESTor: mv [OPTION]... SOURCE... DIRECTORYor: mv [OPTION]... -t DIRECTORY SOURCE...
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.Mandatory arguments to long options are mandatory for short options too.--backup[=CONTROL] make a backup of each existing destination file-b like --backup but does not accept an argument-f, --force do not prompt before overwriting-i, --interactive prompt before overwrite-n, --no-clobber do not overwrite an existing file
If you specify more than one of -i, -f, -n, only the final one takes effect.--strip-trailing-slashes remove any trailing slashes from each SOURCEargument-S, --suffix=SUFFIX override the usual backup suffix-t, --target-directory=DIRECTORY move all SOURCE arguments into DIRECTORY-T, --no-target-directory treat DEST as a normal file-u, --update move only when the SOURCE file is newerthan the destination file or when thedestination file is missing-v, --verbose explain what is being done-Z, --context set SELinux security context of destinationfile to default type--help display this help and exit--version output version information and exitThe backup suffix is '~', unless set with --suffix or SIMPLE_BACKUP_SUFFIX.
The version control method may be selected via the --backup option or through
the VERSION_CONTROL environment variable. Here are the values:none, off never make backups (even if --backup is given)numbered, t make numbered backupsexisting, nil numbered if numbered backups exist, simple otherwisesimple, never always make simple backupsGNU coreutils online help: <http://www.gnu.org/software/coreutils/>
For complete documentation, run: info coreutils 'mv invocation'
2. mv常用選項(xiàng)
mv命令的常用選項(xiàng)
--backup=<備份模式>:若需覆蓋文件,則覆蓋前先行備份;
-b:當(dāng)文件存在時(shí),覆蓋前,為其創(chuàng)建一個(gè)備份;
-f:若目標(biāo)文件或目錄與現(xiàn)有的文件或目錄重復(fù),則直接覆蓋現(xiàn)有的文件或目錄;
-i:交互式操作,覆蓋前先行詢問用戶,如果源文件與目標(biāo)文件或目標(biāo)目錄中的文件同名,則詢問用戶是否覆蓋目標(biāo)文件。用戶輸入”y”,表示將覆蓋目標(biāo)文件;輸入”n”,表示取消對(duì)源文件的移動(dòng)。這樣可以避免誤將文件覆蓋。
--strip-trailing-slashes:刪除源文件中的斜杠“/”;
-S<后綴>:為備份文件指定后綴,而不使用默認(rèn)的后綴;
--target-directory=<目錄>:指定源文件要移動(dòng)到目標(biāo)目錄;
-u:當(dāng)源文件比目標(biāo)文件新或者目標(biāo)文件不存在時(shí),才執(zhí)行移動(dòng)操作。
三、mv命令的基本使用
1. 創(chuàng)建源目錄和目標(biāo)目錄
創(chuàng)建一個(gè)源目錄和目標(biāo)目錄
[root@jeven ~]# mkdir /source
[root@jeven ~]# mkdir /target
2. 新建測試文件
在源目錄和目標(biāo)目錄分別新建測試文件。
[root@jeven ~]# touch /source/sou_file{01..03}.txt
[root@jeven ~]# ls /source/
sou_file01.txt sou_file02.txt sou_file03.txt
[root@jeven ~]# touch /target/tar_file{01..03}.txt
[root@jeven ~]# ls /target/
tar_file01.txt tar_file02.txt tar_file03.txt
3. 將源目錄文件復(fù)制到目標(biāo)目錄
將/source/sou_file01.txt 復(fù)制到/target/目錄下
[root@jeven ~]# mv /source/sou_file01.txt /target/
[root@jeven ~]# ls /target/
sou_file01.txt tar_file01.txt tar_file02.txt tar_file03.txt
4. 將文件進(jìn)行改名
在同一目錄下將文件進(jìn)行改名,例如在target/目錄,將sou_file01.txt改名為aa_test.txt
[root@jeven ~]# cd /target/
[root@jeven target]# mv sou_file01.txt aa_test.txt
[root@jeven target]# ls /target/
aa_test.txt tar_file01.txt tar_file02.txt tar_file03.txt
5. 將目錄的所有文件轉(zhuǎn)移到目標(biāo)目錄
將/source/目錄的所有文件,轉(zhuǎn)移到目標(biāo)目錄 /target/
[root@jeven ~]# mv /source/* /target/
[root@jeven ~]# ls /target/
aa_test.txt sou_file02.txt sou_file03.txt tar_file01.txt tar_file02.txt tar_file03.txt
6. 移動(dòng)多個(gè)文件到目標(biāo)目標(biāo)
將/test/目錄下的file01和file02文件轉(zhuǎn)移到目標(biāo)目錄/target
[root@jeven ~]# mv /test/file01 /test/file02 /target/
[root@jeven ~]# ls /target/
aa_test.txt file01 file02 sou_file02.txt sou_file03.txt tar_file01.txt tar_file02.txt tar_file03.txt
7. 移動(dòng)目錄
將/test目錄移動(dòng)到/target目錄
[root@jeven ~]# mv /test/ /target/
[root@jeven ~]# ls /target/
aa_test.txt file01 file02 sou_file02.txt sou_file03.txt tar_file01.txt tar_file02.txt tar_file03.txt test
8. 覆蓋文件
在/source目錄下,創(chuàng)建兩個(gè)文件,并寫入內(nèi)容。
root@jeven ~]# cd /source/
[root@jeven source]# ls
[root@jeven source]# echo 11 > aa.txt
[root@jeven source]# echo 22 > bb.txt
[root@jeven source]# cat aa.txt
11
[root@jeven source]# cat bb.txt
22
當(dāng)源文件aa.txt和目標(biāo)文件bb.txt都存在時(shí),源文件會(huì)變成目標(biāo)文件bb.txt,并覆蓋原來的bb.txt文件。
[root@jeven source]# mv aa.txt bb.txt
mv: overwrite ‘bb.txt’? yes
[root@jeven source]# ls
bb.txt
[root@jeven source]# cat bb.txt
11
四、mv的日常使用
1. 提示是否覆蓋文件
在當(dāng)覆蓋文件時(shí),提示是否覆蓋文件,默認(rèn)mv命令加了-I
[root@jeven source]# mv -i aa.txt bb.txt
mv: overwrite ‘bb.txt’? yes
[root@jeven source]# ls
bb.txt
[root@jeven source]# cat bb.txt
11
[root@jeven source]# alias |grep mv
alias mv='mv -i'
2. 覆蓋文件時(shí)對(duì)源文件備份
使用
mv -b
,在覆蓋文件時(shí),對(duì)源文件進(jìn)行備份。
[root@jeven source]# echo 11 > aa.txt
[root@jeven source]# echo 22 > bb.txt
[root@jeven source]# mv -b aa.txt bb.txt
mv: overwrite ‘bb.txt’? yes
[root@jeven source]# ls
bb.txt bb.txt~
[root@jeven source]# cat bb.txt
11
[root@jeven source]# cat bb.txt~
22
3. 強(qiáng)制覆蓋文件
使用mv -f 強(qiáng)制覆蓋文件。
mv -f aa.txt bb.txt
4. 打印轉(zhuǎn)移信息
使用mv -v打印移動(dòng)信息
[root@jeven source]# mv -v /source/bb.txt /target/
‘/source/bb.txt’ -> ‘/target/bb.txt’
5. 源文件比目標(biāo)文件新時(shí)才執(zhí)行更新
當(dāng)源文件是最新更新時(shí),才可以覆蓋目標(biāo)文件。
- 目標(biāo)文件比源文件更新時(shí),不執(zhí)行覆蓋操作。
[root@jeven source]# echo 11 > aa.txt
[root@jeven source]# echo 22 > bb.txt
[root@jeven source]# mv -uv aa.txt bb.txt
[root@jeven source]# ls
aa.txt bb.txt
- 源文件比目標(biāo)文件更新時(shí),執(zhí)行覆蓋操作。
[root@jeven source]# echo ee > aa.txt
[root@jeven source]# mv -uv aa.txt bb.txt
mv: overwrite ‘bb.txt’? yes
‘a(chǎn)a.txt’ -> ‘bb.txt’
[root@jeven source]# ls
bb.txt
[root@jeven source]# cat bb.txt
ee
五、注意事項(xiàng)
在Linux中使用mv
命令時(shí),有幾個(gè)注意事項(xiàng)可以幫助你更安全、有效地操作文件和目錄:
-
權(quán)限問題:確保你有足夠的權(quán)限去移動(dòng)或重命名文件。如果沒有,
mv
命令會(huì)失敗,除非使用了sudo
(對(duì)于需要提升權(quán)限的操作)。 -
覆蓋風(fēng)險(xiǎn):默認(rèn)情況下,如果你嘗試移動(dòng)一個(gè)文件到一個(gè)已存在的同名文件的位置,
mv
會(huì)直接覆蓋目標(biāo)文件,不會(huì)詢問。為了避免意外覆蓋,可以使用-i
(interactive)選項(xiàng),這樣在覆蓋前會(huì)提示確認(rèn)。 -
備份原文件:使用
-b
選項(xiàng)可以在覆蓋文件前自動(dòng)創(chuàng)建一個(gè)備份,這對(duì)于保護(hù)重要數(shù)據(jù)很有幫助。 -
移動(dòng)與重命名的區(qū)別:當(dāng)?shù)诙€(gè)參數(shù)是文件名時(shí),視為重命名操作;當(dāng)是目錄名時(shí),則是移動(dòng)操作。確保正確指定目標(biāo)以達(dá)到預(yù)期效果。
-
跨文件系統(tǒng)移動(dòng):跨文件系統(tǒng)移動(dòng)文件時(shí),
mv
實(shí)際上是先復(fù)制再刪除原文件。這意味著如果操作過程中出現(xiàn)錯(cuò)誤(如空間不足),可能會(huì)丟失原文件。 -
目錄操作:移動(dòng)目錄時(shí),記得在目標(biāo)路徑后加斜杠(/),這可以避免在目標(biāo)目錄不存在時(shí)意外地將源目錄作為目標(biāo)目錄的一個(gè)子目錄移動(dòng)進(jìn)去。
-
批量操作:可以同時(shí)移動(dòng)多個(gè)文件或目錄,只需在源文件列表中列出它們,但目標(biāo)必須是一個(gè)已存在的目錄。
-
符號(hào)鏈接:移動(dòng)符號(hào)鏈接會(huì)移動(dòng)鏈接本身而不是鏈接指向的文件。若要移動(dòng)實(shí)際文件,需要使用
-L
選項(xiàng)來跟蹤并移動(dòng)鏈接指向的目標(biāo)。