이동 파일은 리눅스에서는 보일 수 있는 상대적으로 간단하지만,더 많은 옵션을 사용할 수 보다는 가장 깨닫게 됩니다. 이 문서에서 가르치고 초보자를 이동하는 방법 파일에서는 GUI 와 명령행에서 그는 또한 설명이 실제로 일어나는 후드,및 주소를 명령행 옵션을 경험 많은 사용자가 거의 탐구한다.

무엇을 이동?

으로 탐구하기 전에 파일을 이동하는,그것의 가치를 자세히 살펴보면 실제로 무슨 일이 일어나면 이동하는 파일 시스템 개체입니다., 파일이 생성되면 데이터 저장에 사용되는 파일 시스템의 고정 소수점 인 아이 노드에 할당됩니다. 당신은 무엇을 할 수 있는 inode 지도를 가진 파일의 ls 명령:

$ ls --inode example.txt
7344977 example.txt

파일을 이동하면,당신은하지 않는 실제 데이터 이동 중 하나에서의 inode 다른 당신은 할당 파일의 새로운 객체 이름 또는 파일 경로. 실제로 파일을 이동해도 파일이 변경되거나 다시 만들어지지 않기 때문에 파일이 이동 될 때 사용 권한이 유지됩니다.

파일 및 디렉토리 inodes 는 상속을 의미하지 않으며 파일 시스템 자체에 의해 지시됩니다., 아이 노드 할당은 파일이 생성 된시기에 따라 순차적이며 컴퓨터를 구성하는 방법과 완전히 독립적입니다. 디렉토리의”내부”파일은 상위 디렉토리보다 낮은 아이 노드 번호를 갖거나 더 높은 디렉토리를 가질 수 있습니다. 예를 들어,

$ mkdir foo
$ mv example.txt foo
$ ls --inode
7476865 foo
$ ls --inode foo
7344977 example.txt

이동할 경우 파일에서 하나의 하드 드라이브를 다른 그러나,아이노드는 것은 매우 변경될 수 있습니다. 이는 새 데이터를 새 파일 시스템에 기록해야하기 때문에 발생합니다. 이러한 이유로,리눅스에서의 행위는 파일을 이동하고 이름을 바꾸는 말 그대로 동일한 작업입니다., 파일을 다른 디렉토리로 이동하든 새 이름을 가진 동일한 디렉토리로 이동하든 두 작업은 동일한 기본 프로그램에 의해 수행됩니다.

이 기사에서는 한 디렉토리에서 다른 디렉토리로 파일을 이동하는 데 중점을 둡니다.

마우스로 이동

GUI 는 대부분의 사람들에게 친숙하고 복잡한 이진 데이터 모음 위에 친숙한 추상화 계층입니다. 또한 리눅스에서 파일을 이동하는 최초의 가장 직관적 인 방법입니다. 일반적인 의미에서 데스크톱 경험에 익숙하다면 하드 드라이브 주변에서 파일을 이동하는 방법을 이미 알고있을 것입니다., 에는 그놈 데스크탑,예를 들어,기본 동작할 때 파일을 드래그 앤 드롭 하나의 창에서 또 다른 파일을 이동하기보다는 복사,그래서 아마 하나의 가장 직관적인 행동을 바탕 화면에서

Dolphin 파일 관리자에서 명령행 인터페이스 데스크톱 기본값을 사용자에게 메시지를 표시하지는 작업입니다. Shift 키를 누른 상태에서 드래그 하는 동안 파일군이 이동 동작:

에 이동하는 명령

쉘 명령을 위한 이동하는 파일에 Linux,BSD,Illumos,Solaris,MacOS 은 mv., 간단한 명령으로 예측 가능한 구문,mv<원><목적지>이동 소스 파일을 지정된 곳으로,각각의 정의 중 하나에 의해 절대적 또는 상대적인 파일 경로. 으로 언급하기 전에,mv 같은 일반적인 명령에 대한 POSIX 사용자는 많은 추가 수정은 일반적으로 알 수없는,그래서 이 문서에서 제공하는 몇 가지 유용한 수정은 귀하의 관심에 당신은 새롭거나 경험했다.,

모든 mv 명령이 동일한 사람들에 의해 작성된 것은 아니므로 운영 체제에 따라 GNU mv,BSD mv 또는 Sun mv 가있을 수 있습니다. 명령어 옵션과 다를 구현하여 구현(BSD mv 가 없는 오래 옵션에는 모든)그래서를 참조하십시오 mv 남자 페이지가 무엇을 보 지원,또는 설치 원하는 버전을 대신(는 럭셔리한 오픈 소스).,

이동 파일

이동하는 파일에서 하나의 폴더에 다른 mv,기억하는 구문 mv<원><목적지>. 예를 들어,파일 예를 이동합니다.txt 으로 귀하의 문서 디렉토리:

$ touch example.txt
$ mv example.txt ~/Documents
$ ls ~/Documents
example.txt

처럼 이동할 때 파일 드래그 앤 드롭하여 위에 그것의 폴더 아이콘,이 명령을 대체하지 않은 문서와 예입니다.txt. 대신 Mv 는 문서가 폴더임을 감지하고 예제를 배치합니다.그것으로 txt 파일.,

할 수도 있습니다,편리하게 파일의 이름을 변경으로 당신은 그것을 이동:

$ touch example.txt
$ mv example.txt ~/Documents/foo.txt
$ ls ~/Documents
foo.txt

는 것이 중요하기 때문에 그것을 사용할 파일의 이름을 변경되지 않는 경우에도 이동하려면 다른 위치,그래서 다음과 같:

$ touch example.txt$ mv example.txt foo2.txt$ lsfoo2.txt

이동하는 디렉터리

mv 명령을 구분하지는 않는 파일이 디렉토리에서 방법 cp 않습니다., 로 이동할 수 있는 디렉토리 또는 파일과 같은 문법:

$ touch file.txt
$ mkdir foo_directory
$ mv file.txt foo_directory
$ mv foo_directory ~/Documents

파일 이동이 안전하게

경우 파일을 복사 디렉토리에 파일의 동일한 이름이 이미 존재하는,mv 명령을 대체 목적지 파일이 하나의 시설,기본적으로 합니다. 이 동작을 clobbering 이라고하며 때로는 정확히 의도 한 것입니다. 다른 때는 그렇지 않습니다.

일부 배포판 별칭(또는 직접 쓸 수도 있음)mv 를 mv–interactive 로 보내면 확인 메시지가 표시됩니다. 일부는 그렇지 않습니다., 어떤 방법을 사용할 수 있습–대나-i 옵션을 확인하는 mv 요청에 대한 확인 경우는 파일의 이름은 같은 충돌

$ mv --interactive example.txt ~/Documents
mv: overwrite '~/Documents/example.txt'?

을 원하지 않는 경우는 수동으로 개입하여,사용–no-소지품이나-n 다. 이 플래그는 충돌 시 이동 동작을 자동으로 거부합니다. 이 예에서는 예라는 이름의 파일입니다.,txt 에 이미 존재합니다~/는 문서,그래서 그것을에서 이동되지 않는 현재 디렉토리로 지시한다.

$ mv --no-clobber example.txt ~/Documents
$ ls
example.txt

이동 백업

사용하는 경우에는 GNU mv,거기 있는 백업 옵션을 제공하는 다른 의미의 안전한 이동합니다. 백업을 만들의 충돌하는 모든 대상 파일에-b 옵션을 사용하십시:

$ mv -b example.txt ~/Documents
$ ls ~/Documents
example.txt example.txt~

이 플래그를 보장하는 mv 완료하는 이동 작업,그러한 보호는 기존 파일에 목적지에 위치에 있습니다.,

또 다른 GNU 백업 옵션–백업 소요되는 인수하는 방법을 정의하는 백업 파일 이름:

  • 기존의:경 번호 백업이 이미 존재하는 대상에는 다음,번호 백업이 만들어집니다. 그렇지 않으면 간단한 구성표가 사용됩니다.
  • none:–backup 이 설정되어 있어도 백업을 만들지 않습니다. 이 옵션은 백업 옵션을 설정하는 mv 별칭을 재정의하는 데 유용합니다.
  • 번호 매기기:대상 파일에 번호를 추가합니다.,
  • simple:대상 파일을~로 추가하여 ls 에 대한–ignore-backups 옵션을 사용하여 일상보기에서 편리하게 숨길 수 있습니다.

예:

환경 변수 VERSION_CONTROL 로 기본 백업 구성표를 설정할 수 있습니다. ~/에서 환경 변수를 설정할 수 있습니다.bashrc 파일 또는 동적으로 하기 전에 당신의 명령:

–backup 옵션은 여전히 존중–대나-i 옵션,그래서 그것은 여전히 메시지를 표시 대상을 덮어쓰는 파일에도 하지만 그것을 만들기 전에 백업을 하도록:

재정의할 수 있습니다-나는 그 힘 또는-f 옵션을 선택합니다.,bsd mv 에서는–backup 옵션을 사용할 수 없습니다.

이동에 많은 파일을 한번

이동할 때 여러 파일을 mv 취급 최종 directory 라는 이름으로 대상:

$ mv foo bar baz ~/Documents
$ ls ~/Documents
foo bar baz

경우 마지막 항목은 디렉토리가 아닌,mv 오류를 반환합니다:

$ mv foo bar baz
mv: target 'baz' is not a directory

의 구문 GNU mv 은 매우 유연합니다., 는 경우를 제공할 수 없는 mv 명령을 목적으로 최종 논쟁을 사용하여 대상 디렉토리나-t 옵션:

$ mv --target-directory=~/Documents foo bar baz
$ ls ~/Documents
foo bar baz

이것은 경우에 특히 유용성 mv 명령에서 출력의 다른 어떤 명령과 같은를 찾을 명령,xargs,또는 GNU 병행합니다.

이동에 따라 mtime

GNU mv,정의할 수 있는 이동 작업에 기반하는지 여부 파일을 이동하는 것보다 새로운 목적지일 것이다., 이 옵션으로 가능-업데이트나-u 옵션을 사용할 수 없 BSD mv

이 결과는 독점적으로 파일을 기준으로’수정하지 않는 시간에 차이의 두 개의 파일로 사용합니다. 속이는 것은 쉽습니다 mv 단순한 터치 명령:

분명히 이것이 가장 지적인 업데이트 기능 사용할 수 있지만,제공에 대한 기본적인 보호를 덮어 최근 데이터입니다.

Moving

mv 명령보다 데이터를 이동하는 방법이 더 많지만 작업의 기본 프로그램으로 mv 는 좋은 보편적 인 옵션입니다., 이제 어떤 옵션을 사용할 수 있는지 알았으므로 mv 를 이전보다 더 똑똑하게 사용할 수 있습니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다