bash 옵션 - 한 디렉터리에서 기존 디렉터리로 파일 복사




리눅스 디렉토리 (6)

bash에서이 작업을 수행해야합니다.

  1. 디렉토리의 모든 파일 가져 오기

  2. 기존 디렉토리에 복사하십시오.

어떻게해야합니까? 나는 cp -r t1 t2 시도했다. (t1과 t2는 모두 기존 디렉토리이다. t1에는 파일이있다.)하지만 t2 안에 t1이라는 디렉토리가 생겼다. 나는 그것을 원하지 않는다. t1에있는 파일이 t2에 직접 들어가야한다. . 어떻게해야합니까?


Answers

몇 가지 세부 사항에 따라 다음과 같이해야 할 수도 있습니다.

r=$(pwd)
case "$TARG" in
    /*) p=$r;;
    *) p="";;
    esac
cd "$SRC" && cp -r . "$p/$TARG"
cd "$r"

... 이것은 기본적으로 SRC 디렉토리로 변경하고 대상에 복사 한 다음 시작한 시점으로 돌아갑니다.

여분의 소란은 상대 또는 절대 목표를 처리하는 것입니다.

(이것은 cp 명령 자체의 미묘한 의미에 의존하지 않습니다. 소스 스펙을 어떻게 처리하는지에 대한 정보는 후반부 /없이 ... GNU cp 이상으로 안정적이고 이식 가능하며 신뢰성이 있는지 확신 할 수 없기 때문에 앞으로도 계속 그렇게 될지 모르겠습니다.)


한 디렉토리에서 현재 디렉토리로 무언가를 복사하려면 다음과 같이하십시오.

cp dir1/* .

여기서는 숨겨진 파일을 복사하려고하지 않는다고 가정합니다.


당신이 원하는 것은 :

cp -R t1/. t2/

끝에있는 점은 디렉토리 자체가 아닌 현재 디렉토리의 내용을 복사하도록 지시합니다. 이 방법에는 숨김 파일과 폴더도 포함됩니다.


cp dir1/* dir2

또는 dir1 안에 복사 할 디렉토리가 있다면

cp -r dir1/* dir2

cp -R t1/ t2

소스 디렉토리의 후행 슬래시는 의미를 약간 변경하여 내용을 복사하지만 디렉토리 자체는 복사하지 않습니다. 또한 버트 랜드의 대답에있는 globbing과 보이지 않는 파일의 문제를 피할 수 있습니다 (복사 t1/* 보이지 않는 파일을 놓치고 원치 않는 't1 / * t1 /.*'사본 t1 /.와 t1 / ..를 복사합니다) .


os.system('cp nameoffilegeneratedbyprogram /otherdirectory/') 사용할 수 있습니다.

또는 내가 그랬던 것처럼,

os.system('cp '+ rawfile + ' rawdata.dat')

여기서 rawfile 은 프로그램 내에서 생성 한 이름입니다.

이것은 Linux 전용 솔루션입니다.





bash file directory copy cp