cp
--parents
파일의 디렉터리 구조를 다른 디렉터리로 복사할 수 있는 유용한 기능이 있습니다 .
$ cp -v --parents source/directory/from target/
‘source/directory/from’ -> ‘target/source/directory/from’
어떻게 하면 똑같이 할 수 있나요?이동하다문서가 하나요?
답변1
직접적으로는 아니지만, 적어도 mv
GNU에 따르면 그렇지 않습니다.매뉴얼 페이지. 가능한 해결 방법은 다음과 같은 기능을 추가하는 것입니다.
pmv(){
source=$1
target=${2%/}
mkdir -p -- "$target/$(dirname -- "$source")" &&
mv -- "$source" "$target/$(dirname -- "$source")/"
}
쉘의 구성 파일에 함수를 추가하고( ~/.bashrc
bash를 사용하는 경우) 다음과 같이 실행하십시오.
pmv source/directory/from target/
답변2
비슷한 방법으로 파일을 옮기는 방법이 있나요?
전혀. mv
시스템 호출을 사용하는 매우 간단한 유틸리티입니다 rename
(원자FS 작업) 가능한 경우 - 소스/대상이 동일한 블록 장치에 있는 경우,그렇지 않으면 뒤로 넘어질 것이다행동 에 cp
. rename
src/dst가 Linux에서 허용하는 다른 마운트 지점에 마운트된 동일한 장치인 경우에도 실제로 실패합니다.
따라서 파일을 이동해야 하는 경우는 다음과 같습니다.
cp -v --parents source/directory/from target/
다음 사항에 대해 생각해 볼 수 있습니다.
mv source target/
하지만 움직인다는 걸 기억하세요모든 콘텐츠모든 상위 디렉토리는 아마도 내부에 있을 것이므로 나중에 처리해야 합니다. 즉, cp --parents
제공된 것과 동일한 결과를 얻으려면 추가 파일을 모두 연결 해제해야 합니다.
조만간 당신은 당신이 하고 있는 일이 cp
/ rm
메소드를 사용하여 쉽게 이루어질 수 있다는 것을 깨닫게 될 것입니다. 사랑하는 사람의 사용을 허용하면서 빠르게 cp
사용할 수 있고 -l
실행할 수 있습니다 --parents
. 그렇기 때문에 의 것만큼 멋진 것은 mv
없을 것입니다 .cp
--parents