>  기사  >  시스템 튜토리얼  >  이 기사를 읽어보세요! Linux mv 명령을 사용하는 방법을 알고 있습니다.

이 기사를 읽어보세요! Linux mv 명령을 사용하는 방법을 알고 있습니다.

WBOY
WBOY앞으로
2024-02-12 12:09:141069검색

우리 모두 알고 있듯이 Linux 시스템에서는 모든 것이 파일입니다!

看了这篇文章!我才知道 Linux mv 命令的真正使用方法

그래서 리눅스 시스템에서는 파일의 운용과 관리가 특히 중요합니다. 오늘은 파일 관리 명령어 mv를 소개해드리겠습니다.

이 글에서는 주로 mv 명령의 구체적인 사용법과 실무에서 주의해야 할 점을 설명합니다. 이론 + 예제를 통해 mv 명령을 함께 공부하고 배워봅시다.

뮤비 소개

mv 명령은 move의 약어이며 Linux 시스템에서 일반적으로 사용되는 명령 중 하나입니다. mv 명령은 파일이나 디렉터리를 이동하고 이름을 바꾸는 데 자주 사용됩니다. 또는 한 디렉터리에서 다른 디렉터리로 파일을 이동합니다. 파일을 기존 대상 파일로 이동하면 대상 파일의 내용이 해당 파일의 내용으로 덮어쓰여집니다.

소스가 파일이고 대상이 디렉터리인 경우 mv는 파일 위치를 이동합니다. 소스가 디렉터리인 경우 대상은 디렉터리(파일 아님)만 될 수 있으며 mv는 디렉터리 이름을 바꿉니다.

mv 명령을 사용하여 파일을 이동할 때 대상이 다른 경우 다음과 같은 4가지 다른 결과

가 나타납니다.
  • 대상이 지정된 특정 경로인 경우 소스 파일은 이 디렉터리로 이동되고 파일 이름은 변경되지 않습니다.
  • 대상이 디렉터리가 아닌 경우 소스 파일 이름(1개만 가능)이 대상 파일 이름이 됩니다. 동일한 이름의 파일이 있으면 동일한 이름의 기존 파일을 덮어씁니다.
  • 소스 파일과 대상 파일이 동일한 디렉터리에 있는 경우 mv의 기능은 파일 이름을 수정하는 것입니다.
  • 대상이 디렉터리인 경우 여러 소스 파일 또는 디렉터리가 있을 수 있으며 모든 소스 파일은 대상 디렉터리로 이동됩니다. 그리고 모든 파일은 이전 파일 이름을 유지합니다.

문법 형식

으아아아 옵션 설명

으아아아 적용 사례

파일 이름 바꾸기(디렉터리)

mv 源文件 目标文件 或 mv 源目录 目标目录명령 형식:

참고: 이 명령을 사용할 때 소스 파일(디렉토리)과 대상 파일(디렉토리)이 동일한 디렉토리

에 있고 대상 파일(디렉토리)이 존재하지 않는지 확인해야 합니다. 그렇지 않으면 다음의 효과가 발생합니다. 이 명령을 사용하면 이름을 바꾸는 것이 파일(디렉토리) 이동이 됩니다.

먼저 테스트에 필요한 파일과 디렉터리를 만듭니다

으아아아

이름 바꾸기 작업 수행

으아아아 -v명령어 실행 과정이 필요하다면 매개변수를 추가하면 됩니다

看了这篇文章!我才知道 Linux mv 命令的真正使用方法 으아아아
단일 또는 여러 파일(디렉토리)을 동시에 이동

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
看了这篇文章!我才知道 Linux mv 命令的真正使用方法

目录的移动其实也是一样操作,也非常的简单。如果目标位置有同名文件,我们不希望它被覆盖,可以加上 -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
看了这篇文章!我才知道 Linux mv 命令的真正使用方法
交互式覆盖文件

这个操作只需要添加一个参数(-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
看了这篇文章!我才知道 Linux mv 命令的真正使用方法
仅当源文件(目录)较新时才覆盖
看了这篇文章!我才知道 Linux mv 命令的真正使用方法

从上图中可以看出,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
看了这篇文章!我才知道 Linux mv 命令的真正使用方法

从上图结果中可以看出覆盖成功,这种操作可以用在大量文件移动时,也可以用在更新文件或目录时。

覆盖文件前创建备份
[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
看了这篇文章!我才知道 Linux mv 命令的真正使用方法

在备份的过程中,我们还可以通过参数--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 命令的真正使用方法

위 내용은 이 기사를 읽어보세요! Linux mv 명령을 사용하는 방법을 알고 있습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 lxlinux.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제