답변:
이 이름의 디렉토리가 존재하지 않는 경우 파일의 이름을 openvpn
루트 디렉토리로 변경했습니다 /
. 이를 되돌리려면 다음을 실행하십시오.
sudo mv /openvpn /etc/MyFile.conf
디렉토리가 존재하면 그 안에서 파일을 옮겼다면, 다음과 같이 되돌아갑니다.
sudo mv /openvpn/MyFile.conf /etc/
현재 디렉토리의 기존 하위 디렉토리로 이동하려면 다음 중 하나를 실행할 수 있습니다. 상대 경로를 사용 합니다.
mv MyFile.conf openvpn
mv MyFile.conf openvpn/
mv MyFile.conf ./openvpn
mv MyFile.conf ./openvpn/
.
는 현재 디렉토리에 대한 링크이므로 ./
경로의 시작 부분은 "이 디렉토리에 있음"을 의미합니다. 끝에있는 슬래시 openvpn
는 디렉토리 임을 의미하며 그 안에서 파일을 이동하려고합니다. 제공하지 않으면 이 이름의 디렉토리가 존재 하면 파일이 파일로 이동 하고 파일 이름이로 변경 됩니다 openvpn
. A의 /
말에, mv
디렉토리가 누락 된 경우 경고합니다 없는 이름을 그 이름을 변경하지 않으려면 안전한 방법은, 그래서.
당신의 경로로 시작하면 /
, 다른 한편으로는의 절대 항상 루트 디렉토리를 기준으로의 경로에 관계없이 현재 작업 디렉토리의 /
. 파일과 대상 모두에 절대 경로를 사용하면 명령은 다음과 같습니다.
mv /etc/MyFile.conf /etc/openvpn
mv /etc/MyFile.conf /etc/openvpn/
당신은 사용해야합니다
me@mylaptop:/etc$ sudo mv MyFile.conf openvpn/
MyFile.conf
파일을의 openvpn
하위 디렉토리 로 이동합니다 /etc/
.
반면에
me@mylaptop:/etc$ sudo mv MyFile.conf /openvpn
대신 파일을 /
디렉토리로 이동합니다 openvpn
(예 :로 이름 바꾸기 openvpn
) ( /openvpn
디렉토리가 존재하지 않는다고 가정 ).
파일을 이동할 때 OS에 파일을 넣을 디렉토리 또는 파일에 제공하려는 새 경로를 알려줍니다.
OS에게 "/ openvpn"이라고 말하였습니다. 따라서 정확히 그렇게 할 것입니다. / openvpn이 존재하는지 (루트 디렉토리에있는 "openvpn"이라는 객체를 의미 함) 디렉토리인지 확인하고, 파일을 디렉토리로 옮기거나 / openvpn이 파일이거나 존재하지 않는 경우 파일 이름을 바꾸고 이동하여 이제 / openvpn으로 액세스 할 수 있습니다.
원하는 것은 파일 시스템 루트 디렉토리에있는 디렉토리 가 아니라 현재 디렉토리에있는 "openvpn"디렉토리 로 옮기는 것입니다 (이는 "/"가 의미하는 것입니다). 따라서 절대 경로 "/ openvpn"이 아니라 move 명령에서 해당 디렉토리 를 가리켜 야했습니다 . 다음 중 하나가 작동합니다.
mv MyFile.conf openvpn
-내 현재 디렉토리에서 "openvpn"을 찾으십시오.mv MyFile.conf /etc/openvpn
-절대 경로 / etc / openvpn을 찾으십시오mv MyFile.conf openvpn/
-내 현재 디렉토리에서 openvpn이라는 디렉토리를 찾으십시오.mv MyFile.conf ./openvpn
- "현재 디렉토리"를 더욱 분명하게 만듭니다.짧은 버전- "/"를 사용하여 "내 현재 디렉토리"를 의미하므로 "/ openvpn"은 "현재 현재 디렉토리에있는 openvpn"을 의미합니다. 그러나 선행 "/"는 "루트 디렉토리"만을 의미하므로 "/ openvpn"은 "루트 디렉토리의 openvpn"을 의미합니다. 필요한 것은 "openvpn"또는 "openvpn /"을 사용하는 것입니다. " 현재 디렉토리의 " openvpn "을 의미 합니다.
로 시작 /
하는 경로는 상대 경로가 아닌 절대 경로입니다.
모든 경로가 항상 현재 디렉토리와 관련이 있다면 cd /etc
우선 어떻게해야 합니까? 당신은 그 cd ../../../../../etc
수준이 충분했음을 희망 ..
하거나 cd ..
루트 디렉토리에 도착할 때까지 계속 해야합니다.
또는 절대 경로를 표현하려면 다른 구문이 필요합니다. 그러나 유닉스는 /
프로세스의 현재 작업 디렉토리와 관련된 다른 것을 절대적 으로 의미 하기로 결정했습니다 . 그래서 mv MyFile.txt openvpn
작동합니다.
그리고 아닙니다. 존재하거나 존재하지 않는 파일에서 절대 대 상대를 유추하는 것은 잘 작동하지 않습니다. mkdir
시스템 호출이 경로를 시스템 호출과 다르게 처리 chdir
하거나 rename
시스템 호출을 다르게 처리 하지 않기를 원 하며, mv
프로그램이 그렇게 mv
하면 출력 파일 이름을 사용하는 다른 프로그램과 다른 프로그램 간에 불일치 가 생길 수 있습니다 .
mv
rename()
대상이 디렉토리 인 경우 소스 파일 이름을 해당 대상 디렉토리에 추가하고 다시 시도 하기 때문에 이미 특별 합니다. 그러나 간단한 구현 전략 중 하나 rename()
는 EEXIST
또는로 실패한 첫 번째 시스템 호출에 의존한다는 점에 유의하십시오 EISDIR
. 따라서 파일 시스템을 확인하기 전에 경로가 상대적인지 또는 절대인지 알아야합니다.
초기 Unix는 느린 컴퓨터에서 실행되어 디렉토리가 존재하는지 추가 검사하면 캐시되지 않은 경우 추가 I / O 또는 디렉토리 캐싱에 대한 추가 압력을 의미 할 수 있습니다. 과거의 효율성 주장에 의지하지 않고 시스템이 작동하는 적절한 방법이 아니 었습니다.)
다른 답변을 완료하려면 :
mv file.txt /location
Windows의 경우와 동일
mv file.txt c:\location
리눅스 의 파일 시스템 은 파일 시스템 계층 표준 , 즉 FHS 에 따라 생각됩니다 . 파일의 특성과 내용에 따라 파일을 어디에 배치해야하는지 알 수 있습니다.
첫 번째 폴더 ( c:
Windows 와 동일 )는 /
입니다.
sudo mv /openvpn/MyFile.conf /etc/
먼저 명령을 시도하십시오 . 가능한 시나리오에서 디렉토리가 존재하지 않으면 오류 (아마 "디렉토리가 아님")가 발생하고 파일 시스템을 건드리지 않습니다. 그런 다음, 당신은 할 수 있습니다sudo mv /openvpn /etc/MyFile.conf
.