우리 모두 알고 있듯이 Linux 시스템에서는 모든 것이 파일입니다!
그래서 리눅스 시스템에서는 파일의 운용과 관리가 특히 중요합니다. 오늘은 파일 관리 명령어 mv를 소개해드리겠습니다.
이 글에서는 주로 mv 명령의 구체적인 사용법과 실무에서 주의해야 할 점을 설명합니다. 이론 + 예제를 통해 mv 명령을 함께 공부하고 배워봅시다.
mv 명령은 move의 약어이며 Linux 시스템에서 일반적으로 사용되는 명령 중 하나입니다. mv 명령은 파일이나 디렉터리를 이동하고 이름을 바꾸는 데 자주 사용됩니다. 또는 한 디렉터리에서 다른 디렉터리로 파일을 이동합니다. 파일을 기존 대상 파일로 이동하면 대상 파일의 내용이 해당 파일의 내용으로 덮어쓰여집니다.
소스가 파일이고 대상이 디렉터리인 경우 mv는 파일 위치를 이동합니다. 소스가 디렉터리인 경우 대상은 디렉터리(파일 아님)만 될 수 있으며 mv는 디렉터리 이름을 바꿉니다.
mv 명령을 사용하여 파일을 이동할 때 대상이 다른 경우 다음과 같은 4가지 다른 결과
가 나타납니다.
mv 源文件 目标文件 或 mv 源目录 目标目录
명령 형식:
참고: 이 명령을 사용할 때 소스 파일(디렉토리)과 대상 파일(디렉토리)이 동일한 디렉토리
에 있고 대상 파일(디렉토리)이 존재하지 않는지 확인해야 합니다. 그렇지 않으면 다음의 효과가 발생합니다. 이 명령을 사용하면 이름을 바꾸는 것이 파일(디렉토리) 이동이 됩니다.먼저 테스트에 필요한 파일과 디렉터리를 만듭니다
으아아아
이름 바꾸기 작업 수행
으아아아
-v
명령어 실행 과정이 필요하다면 매개변수를 추가하면 됩니다
mv 源文件(目录)1 源文件(目录)2 目标目录 或 mv *文件(目录) 目标目录
명령 형식:
여러 파일(디렉터리)을 동시에 이동하는 방법에는 두 가지가 있습니다. 🎜
注意:目标目录下如果存在相同的文件名或目录名,容易误操作将同名文件或目录覆盖。
创建测试用的文件和目录
[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
위 내용은 이 기사를 읽어보세요! Linux mv 명령을 사용하는 방법을 알고 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!