Seperti yang kita sedia maklum, Dalam sistem Linux, semuanya adalah fail!
Jadi, pengendalian dan pengurusan fail amat penting dalam sistem Linux Hari ini, saya akan memperkenalkan kepada anda arahan pengurusan fail mv.
Artikel ini menerangkan penggunaan khusus bagi arahan mv dan perkara yang perlu diberi perhatian dalam amalan. Mari kita belajar dan mempelajari arahan mv bersama-sama melalui teori + contoh.
Arahan mv ialah singkatan kepada move dan juga merupakan salah satu arahan yang biasa digunakan dalam sistem Linux Arahan mv sering digunakan untuk memindahkan dan menamakan semula fail atau direktori. Atau alihkan fail dari satu direktori ke direktori lain Jika anda memindahkan fail ke fail sasaran sedia ada, kandungan fail sasaran akan ditimpa oleh kandungan fail.
Jika sumber adalah fail dan sasaran ialah direktori, mv akan mengalihkan lokasi fail. Jika sumbernya ialah direktori, sasaran hanya boleh menjadi direktori (bukan fail), dan mv akan menamakan semula direktori tersebut.
Apabila menggunakan arahanmv untuk mengalihkan fail, akan terdapat 4 keputusan berbeza berikut jika sasaran berbeza:
mv [选项] 源文件或目录 目标文件或目录 mv [options] source destination
-b #当目标文件存在时,覆盖之前创建一个备份 -f #如果移动的文件或目录与目标重复,则直接覆盖(无需确认) -i #交互式操作,覆盖前会提示用户进行确认操作,用户通过输入Y/N来确认是否覆盖 -u #若目标文件已存在,且与需移动的文件同名,只有在源文件比目标文件较新时,才会更新目标文件 -t #指定mv的目标目录,此选项使用于移动多个文件到一个目录的情况,目标文件在前,源文件在后。 -S:#为备份文件指定(自定义的)后缀 -n #不覆盖任何现有文件 -T #将目标当作普通文件,而不是目录 -v #详细输出命令的执行过程信息
Format arahan: mv 源文件 目标文件 或 mv 源目录 目标目录
Nota: Apabila kita menggunakan arahan ini kita mesti memastikan bahawa fail sumber (direktori) dan fail sasaran (direktori) berada dalam direktori yang sama, dan fail sasaran (direktori) tidak wujud, jika tidak kesan daripada menggunakan arahan ini akan Penamaan semula menjadi fail (direktori) bergerak.
Pertama, kami mencipta fail dan direktori yang diperlukan untuk ujian
[root@CentOS7-1 mv]# ll total 0 [root@CentOS7-1 mv]# touch mvfiles [root@CentOS7-1 mv]# mkdir mvdir [root@CentOS7-1 mv]# ll total 0 drwxr-xr-x 2 root root 6 Jan 8 09:03 mvdir -rw-r--r-- 1 root root 0 Jan 8 09:02 mvfiles
Lakukan operasi penamaan semula
[root@CentOS7-1 mv]# mv mvfiles mvfilessssss [root@CentOS7-1 mv]# mv mvdir mvdirectory [root@CentOS7-1 mv]# ll total 0 drwxr-xr-x 2 root root 6 Jan 8 09:03 mvdirectory -rw-r--r-- 1 root root 0 Jan 8 09:02 mvfilessssss
Jika anda memerlukan proses pelaksanaan arahan, anda boleh menambah parameter-v
[root@CentOS7-1 mv]# mv -v mvfilessssss mvfiles ‘mvfilessssss’ -> ‘mvfiles’ [root@CentOS7-1 mv]# mv -v mvdirectory mvdir ‘mvdirectory’ -> ‘mvdir’
Format arahan: mv 源文件(目录)1 源文件(目录)2 目标目录 或 mv *文件(目录) 目标目录
Terdapat dua cara untuk mengalihkan berbilang fail (direktori) pada masa yang sama:
注意:目标目录下如果存在相同的文件名或目录名,容易误操作将同名文件或目录覆盖。
创建测试用的文件和目录
[root@CentOS7-1 mv]# touch 1.txt 2.txt 3.txt [root@CentOS7-1 mv]# mkdir 1 2 3 [root@CentOS7-1 mv]# ll total 0 drwxr-xr-x 2 root root 6 Jan 8 09:20 1 -rw-r--r-- 1 root root 0 Jan 8 09:19 1.txt drwxr-xr-x 2 root root 6 Jan 8 09:20 2 -rw-r--r-- 1 root root 0 Jan 8 09:19 2.txt drwxr-xr-x 2 root root 6 Jan 8 09:20 3 -rw-r--r-- 1 root root 0 Jan 8 09:19 3.txt
移动文件
[root@CentOS7-1 mv]# mv -v 1.txt 2.txt 3.txt /root/mv1/ ‘1.txt’ -> ‘/root/mv1/1.txt’ ‘2.txt’ -> ‘/root/mv1/2.txt’ ‘3.txt’ -> ‘/root/mv1/3.txt’ [root@CentOS7-1 mv]# ll /root/mv1/ total 0 -rw-r--r-- 1 root root 0 Jan 8 09:19 1.txt -rw-r--r-- 1 root root 0 Jan 8 09:19 2.txt -rw-r--r-- 1 root root 0 Jan 8 09:19 3.txt
目录的移动其实也是一样操作,也非常的简单。如果目标位置有同名文件,我们不希望它被覆盖,可以加上 -n 选项
[root@CentOS7-1 mv]# ll total 0 drwxr-xr-x 2 root root 6 Jan 8 09:20 1 drwxr-xr-x 2 root root 6 Jan 8 09:20 2 drwxr-xr-x 2 root root 6 Jan 8 09:20 3 -rw-r--r-- 1 root root 0 Jan 8 09:24 test.txt [root@CentOS7-1 mv]# ll /root/mv1/ total 0 -rw-r--r-- 1 root root 0 Jan 8 09:19 1.txt -rw-r--r-- 1 root root 0 Jan 8 09:19 2.txt -rw-r--r-- 1 root root 0 Jan 8 09:19 3.txt -rw-r--r-- 1 root root 0 Jan 8 09:25 test.txt [root@CentOS7-1 mv]# mv -nv test.txt /root/mv1/ [root@CentOS7-1 mv]# ll /root/mv1/ total 0 -rw-r--r-- 1 root root 0 Jan 8 09:19 1.txt -rw-r--r-- 1 root root 0 Jan 8 09:19 2.txt -rw-r--r-- 1 root root 0 Jan 8 09:19 3.txt -rw-r--r-- 1 root root 0 Jan 8 09:25 test.txt
这个操作只需要添加一个参数(-i
)即可
[root@CentOS7-1 mv]# mv test.txt -v -i /root/mv1/ mv: overwrite ‘/root/mv1/test.txt’? y ‘test.txt’ -> ‘/root/mv1/test.txt’ [root@CentOS7-1 mv]# ll /root/mv1/ total 0 -rw-r--r-- 1 root root 0 Jan 8 09:19 1.txt -rw-r--r-- 1 root root 0 Jan 8 09:19 2.txt -rw-r--r-- 1 root root 0 Jan 8 09:19 3.txt -rw-r--r-- 1 root root 0 Jan 8 09:24 test.txt
从上图中可以看出,mv 目录下的 test.txt 文件较新,如果我们执行反向操作,并且带上-u
参数,来测试旧文件是否会覆盖掉新文件:
[root@CentOS7-1 mv]# mv -v -u /root/mv1/test.txt ./ [root@CentOS7-1 mv]# ll total 0 drwxr-xr-x 2 root root 6 Jan 8 09:20 1 drwxr-xr-x 2 root root 6 Jan 8 09:20 2 drwxr-xr-x 2 root root 6 Jan 8 09:20 3 -rw-r--r-- 1 root root 0 Jan 8 09:36 test.txt
结果表明并没有覆盖掉新文件,接下来,我们测试仅当源文件(目录)较新时才覆盖这个功能。
[root@CentOS7-1 mv]# mv -v -u ./test.txt /root/mv1/ mv: overwrite ‘/root/mv1/test.txt’? y ‘./test.txt’ -> ‘/root/mv1/test.txt’ [root@CentOS7-1 mv]# ll /root/mv1/ total 0 -rw-r--r-- 1 root root 0 Jan 8 09:19 1.txt -rw-r--r-- 1 root root 0 Jan 8 09:19 2.txt -rw-r--r-- 1 root root 0 Jan 8 09:19 3.txt -rw-r--r-- 1 root root 0 Jan 8 09:36 test.txt
从上图结果中可以看出覆盖成功,这种操作可以用在大量文件移动时,也可以用在更新文件或目录时。
[root@CentOS7-1 mv]# cat test1.txt 1 [root@CentOS7-1 mv]# cat test2.txt 2
如果test2.txt存在,原来的文件会被备份
[root@CentOS7-1 mv]# mv -v -b test1.txt test2.txt mv: overwrite ‘test2.txt’? y ‘test1.txt’ -> ‘test2.txt’ (backup: ‘test2.txt~’) [root@CentOS7-1 mv]# ll total 12 -rw-r--r-- 1 root root 2 Jan 8 09:49 test2.txt -rw-r--r-- 1 root root 2 Jan 8 09:49 test2.txt~ -rw-r--r-- 1 root root 2 Jan 8 09:49 test3.txt [root@CentOS7-1 mv]# cat test2.txt 1 [root@CentOS7-1 mv]# cat test2.txt~ 2
在备份的过程中,我们还可以通过参数--suffix=xxx
来自定义文件的后缀名:
[root@CentOS7-1 mv]# cat test2.txt 1 [root@CentOS7-1 mv]# cat test3.txt 3 [root@CentOS7-1 mv]# mv -v -b --suffix=.bak test2.txt test3.txt mv: overwrite ‘test3.txt’? y ‘test2.txt’ -> ‘test3.txt’ (backup: ‘test3.txt.bak’) [root@CentOS7-1 mv]# cat test3.txt 1 [root@CentOS7-1 mv]# cat test3.txt.bak 3
Atas ialah kandungan terperinci Baca artikel ini! Saya hanya tahu cara menggunakan perintah mv Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!