標籤:mv 移動目錄 移動檔案
mv:移動檔案或目錄
1、命令格式
mv [option] SRC(來源目錄或檔案) DEC(目標目錄)
2、命令功能
mv命令是move的縮寫,可以用來移動檔案或者將檔案改名,是Linux系統下常用的命令,經常用來備份檔案或者目錄。
mv 命令的第二個參數是檔案或目錄時,mv命令完成重新命名或者移動檔案,如果重新命名,源檔案只能有一個(也可以是目錄名),當如果是移動檔案,源檔案可以為多個,目標目錄只能一個,在跨檔案系統移動檔案時,mv先拷貝,再將原有檔案刪除,而鏈至該檔案的連結也將丟失。
3、常用選項
-b:移動之前如果移動的目標檔案存在則先備份目標檔案,再移動
-f:強制移動,有檔案相同覆蓋不提示
-i:互動式移動,用於有目標檔案存在時,詢問管理員
-n:如果目標檔案存在則不覆蓋目標檔案
-t:用於源檔案有多個的情況下,此時目標檔案在前,源檔案或目錄在後
-u:移動檔案時如果目標檔案比源檔案新,則不移動
-v,--verbose:顯示詳細資料
--help:協助
--version:顯示命令版本
4、常用範例
例1:移動指令碼info.sh到/sh目錄中
命令:mv info.sh /sh
[[email protected]~]# lsanaconda-ks.cfg iflogin.sh info.sh install.log install.log.syslog yum.log[[email protected]~]# mv info.sh /sh[[email protected]~]# ls /sh/info.sh[[email protected]~]#
例2:將/sh目錄下的info.sh改名,改為userinfo.sh
命令:mv /sh/info.sh /sh/userinfo.sh
[[email protected]~]# mv /sh/info.sh /sh/userinfo.sh[[email protected]~]# ls /shuserinfo.sh[[email protected]~]#
例3:移動多個檔案到/sh目錄下,並顯示移動資訊
命令:mv -v iflogin.shautoadd.sh autodel.sh /sh
[[email protected]~]# lsanaconda-ks.cfg autoadd.sh autodel.sh iflogin.sh install.log install.log.syslog yum.log[[email protected]~]# mv -v autoadd.sh autodel.sh iflogin.sh /sh`autoadd.sh‘-> `/sh/autoadd.sh‘`autodel.sh‘-> `/sh/autodel.sh‘`iflogin.sh‘-> `/sh/iflogin.sh‘[[email protected]~]# ls /sh/autoadd.sh autodel.sh iflogin.sh userinfo.sh[[email protected]~]#
通過上面的ls命令得知在目前的目錄中有3個以sh結尾的檔案,並且都是我們要移動的檔案所已我們可以用以下命令,也可以實現上面的操作
mv -v *.sh /sh
例4:目標檔案存在則備份目標檔案,然後把本檔案移動過去,並顯示詳細的移動資訊
命令:mv -bv userinfo.sh /sh
[[email protected]~]# ll /sh/total 8-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh[[email protected]~]# lltotal 48-rw-------.1 root root 1442 Dec 7 21:28 anaconda-ks.cfg-rw-r--r--.1 root root 27312 Dec 7 21:28install.log-rw-r--r--.1 root root 7572 Dec 7 21:27 install.log.syslog-rw-r--r--.1 root root 276 Dec 10 22:12userinfo.sh-rw-------.1 root root 0 Dec 9 20:39 yum.log[[email protected]~]# mv -bv userinfo.sh /shmv:overwrite `/sh/userinfo.sh‘? y`userinfo.sh‘-> `/sh/userinfo.sh‘ (backup: `/sh/userinfo.sh~‘)[[email protected]~]#[[email protected]~]# ll /sh/total 12-rw-r--r--.1 root root 276 Dec 10 22:12 userinfo.sh-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh~[[email protected]~]#
例5:目標檔案如果存在並且比源檔案新,則不移動
命令:mv -uv userinfo.sh /sh
[[email protected]~]# lltotal 52-rw-r--r--.1 root root 27312 Dec 7 21:28install.log-rw-r--r--.1 root root 7572 Dec 7 21:27 install.log.syslog-rw-r--r--.1 root root 276 Dec 10 22:12userinfo.sh-rw-------.1 root root 0 Dec 9 20:39 yum.log[[email protected]~]# ll /sh/total 4-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh[[email protected]~]# mv -u userinfo.sh /sh/[[email protected]~]# ll /sh/total 4-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh[[email protected]~]#
例6:如果檔案存在則不移動
命令:mv -n userinfo.sh /sh
[[email protected]~]# lltotal 5-rw-r--r--.1 root root 27312 Dec 7 21:28install.log-rw-r--r--.1 root root 7572 Dec 7 21:27 install.log.syslog-rw-r--r--.1 root root 276 Dec 10 22:12userinfo.sh-rw-------.1 root root 0 Dec 9 20:39 yum.log[[email protected]~]# ll /sh/total 4-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh[[email protected]~]#[[email protected]~]# mv -n userinfo.sh /sh/ [[email protected] ~]# ll /sh/total 4-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh [[email protected] ~]#
例7:多個選項同時使用,後選項生效
[[email protected]~]# lltotal 5-rw-r--r--.1 root root 27312 Dec 7 21:28install.log-rw-r--r--.1 root root 7572 Dec 7 21:27 install.log.syslog-rw-r--r--.1 root root 276 Dec 10 22:12userinfo.sh-rw-------.1 root root 0 Dec 9 20:39 yum.log[[email protected]~]# ll /sh/total 4-rw-r--r--.1 root root 276 Dec 10 22:13 userinfo.sh[[email protected]~]# mv -v -n -f userinfo.sh /sh/`userinfo.sh‘-> `/sh/userinfo.sh‘[[email protected]~]# ll /sh/total 8-rw-r--r--.1 root root 276 Dec 10 22:20 userinfo.sh[[email protected]~]#
例8:移動目錄
命令:dir1 dr2
[[email protected]~]# ll test/total 4-rw-r--r--.1 root root 0 Dec 10 22:05 autoadd.sh-rw-r--r--.1 root root 0 Dec 10 22:05 autodel.sh-rw-r--r--.1 root root 239 Dec 9 21:25 iflogin.sh[[email protected]~]# ll /sh/total 8-rw-r--r--.1 root root 276 Dec 10 22:20 userinfo.sh-rw-r--r--.1 root root 276 Dec 10 22:13userinfo.sh~[[email protected]~]# mv test/ /sh/test[[email protected]~]# ll /sh/total 12drwxr-xr-x.2 root root 4096 Dec 10 22:29 test-rw-r--r--.1 root root 276 Dec 10 22:20 userinfo.sh-rw-r--r--.1 root root 276 Dec 10 22:13userinfo.sh~[[email protected]~]#
說明:
如果目錄dir2不存在,將目錄dir1改名為dir2;否則,將dir1移動到dir2中。
本文出自 “linux菜鳥” 部落格,請務必保留此出處http://geekb0y.blog.51cto.com/10743719/1881562
一天一個Linux基礎命令之切換目錄移動命令mv