'mv'는 드래그 앤 드롭으로 대체합니까?


19

GUI 환경에서 바꾸기가있는 끌어서 놓기는 파일 및 전체 디렉토리 (내용 포함)를 복사중인 항목으로 대체합니다. 'mv'명령으로 이와 동일한 직관적 인 결과를 얻을 수있는 방법이 있습니까?

답변:


20

와 함께하지 않습니다 mv.

mv(이름에도 불구하고) 핵심 기능은 객체의 이름바꾸는 것입니다. UNIX가 보장하는 것 중 하나는 이름 바꾸기가 원 자성이라는 것입니다. 부분적으로 완료된 이름 바꾸기를 볼 수는 없습니다. 당신이 (파일을 변경하려는 경우 보장은 매우 유용 할 수 있습니다 /etc/passwd다른 프로그램이보고 될 수 있음을 예를 들어,), 당신은 그 파일의 이전 또는 새로운 버전 중 하나를보고 싶어 하고 다른 가능성을 . 그러나 당신이 묘사하는 "재귀 적 이름 바꾸기"는 그 보증을 깨뜨릴 것입니다-당신은 중간에 그것을 멈출 수 있고 반쯤 움직 인 나무와 아마도 엉망이 될 것입니다. 그래서 그것은 철학에 실제로 맞지 않습니다. 의 mv. 왜 mv -r존재하지 않는지에 대한 나의 추측 입니다.

( mv그런 철학을 다른 작은 방법으로 깨뜨리지 마십시오 . 예를 들어, 파일 시스템 간에 파일을 이동할 때 mv실제로 cp뒤 따릅니다 rm.)

충분한 철학. 동일한 파일 시스템 에서 한 장소에서 다른 장소로 트리를 재귀 적으로 이동 ( "드래그 앤 드롭") 하려면 다음과 같은 효율성과 속도를 얻을 수 있습니다 mv(예 :).

cp -al source/* dest/ && rm -r source/*

"복사하는 대신 하드 링크 만들기" -lcp의미 하는 플래그 -이전 파일 이름과 동일한 파일 데이터를 가리키는 새 파일 이름을 효과적으로 만듭니다. 이것은 하드 링크를 지원하는 파일 시스템에서만 작동하므로 기본 UNIX 파일 시스템은 훌륭하지만 FAT에서는 작동하지 않습니다.

&&수단 "앞의 명령이 성공하는 경우에만 다음 명령을 실행합니다." 원하는 경우 두 명령을 한 번에 하나씩 실행할 수 있습니다.


매우 정보를 제공합니다. 대단히 감사합니다!
user7089

4

mv대상의 비어 있지 않은 하위 디렉토리는 대체되지 않으므로 설명하는 드래그 앤 드롭 동작을 복제 할 수 있다고 생각하지 않습니다 .

아마도 rsync? 같은 것 rsync -a -r source/ target/? 과 함께 실행 -v -n하여 세부적인 드라 이런을 먼저 수행하여 원하는 작업을 수행하십시오.


3

mv -f /path/to/source/folder/* /destination/folder/

파일 및 디렉토리를 포함하여 / path / to / source / folder의 모든 항목을 / destination / folder로 이동합니다.

기존 파일과 디렉토리를 덮어 씁니다.


2
빈 디렉토리 만
Kevin

1

아마도 이것에 대한 정답을 바꾸고 싶을 것입니다.

https://github.com/iaindooley/pickdrop

예:

내가 있다고 말해 :

test/
test/index.php
test/images/
test/images/a.jpg
test/images/thing.png

이 것들을 / site로 옮기고 싶습니다

그래서 다음과 같이 보입니다 :

site/
site/public/
site/public/index.php
site/public/a.jpg
site/public/thing.png

나는 갈 수있다:

cd images &&
pick a.jpg thing.png
cd .. &&
pick index.php &&
cd .. &&
mkdir site &&
mkdir site/public &&
cd site/public &&
drop

이것은 말 그대로 잘라내어 붙여 넣습니다.


매우 시원하고 확실히 살펴볼 가치가 있습니다. 그러나 질문은 구체적으로 'mv'에 관한 것이므로 mv의 철학을 자세하게 설명하는 정답으로 남겨 두겠습니다. 이 기여에 감사드립니다. 매우 도움이되었습니다.
user7089

readme에서 주목할만한 점은 "아직 강력하지 않다는 것입니다. ~ / .pick에 파일 경로를 사용하여 새로운 실행 파일 ~ / .drop 파일을 생성 할 때까지 drop을 호출 할 때까지 ~ / .pick에 선택 항목을 저장합니다. 선택한 각 파일을 현재 작업 디렉토리에 복사합니다. "
user7089
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.