cp 명령으로 파일을 대상에 복사하는 데 필요한 폴더를 작성하는 방법
이 질문에는 이미 답변이 있습니다.
- 리눅스 : 복사가 존재하지 않는 경우 대상 디렉토리를 생성 (19 개) 답변을
cp
존재하거나 존재하지 않는 폴더 로 파일을 복사 할 때 cp
필요한 경우 폴더를 어떻게 만들 수 있습니까? 내가 시도한 것은 다음과 같습니다.
[root@file nutch-0.9]# cp -f urls-resume /nosuchdirectory/hi.txt
cp: cannot create regular file `/nosuchdirectory/hi.txt': No such file or directory
기독교의 대답에 확장하려면 다음을 수행 할 수있는 신뢰할 수있는 유일한 방법은 결합하는 것 mkdir
과 cp
:
mkdir -p /foo/bar && cp myfile "$_"
또한 기존 계층 구조에서 단일 디렉토리 만 작성해야하는 rsync
경우 한 번의 조작으로 수행 할 수 있습니다. 나는 실제로 rsync
훨씬 더 다양한 cp
대체물을 좋아합니다 .
rsync -a myfile /foo/bar/ # works if /foo exists but /foo/bar doesn't. bar is created.
나는 당신이 cp로 그렇게 할 수 있다는 것을 몰랐다.
mkdir로 할 수 있습니다.
mkdir -p /var/path/to/your/dir
편집 cp 통합에 대한 lhunath의 답변 을 참조하십시오 .
Mac OSX에있는 사용자의 경우이 문제를 해결하는 가장 쉬운 방법은 ditto 를 사용 하는 것입니다 (Mac에서는 AFAIK 만 해당). 대상에서 누락 된 디렉토리 구조를 작성합니다.
예를 들어, 나는 이것을했다
ditto 6.3.2/6.3.2/macosx/bin/mybinary ~/work/binaries/macosx/6.3.2/
~/work
명령을 실행하기 전에 바이너리 디렉토리 가 없었습니다.
rsync가 비슷하게 작동해야한다고 생각했지만 누락 된 디렉토리의 한 수준에서만 작동하는 것 같습니다. 그건,
rsync 6.3.3/6.3.3/macosx/bin/mybinary ~/work/binaries/macosx/6.3.3/
~ / work / binaries / macosx는 존재하지만 ~ / work / binaries / macosx / 6.3.2 /는 아니기 때문에 작동했습니다.
mkdir -p `dirname /nosuchdirectory/hi.txt` && cp -r urls-resume /nosuchdirectory/hi.txt
그러한 옵션은 없습니다. 파일을 복사하기 전에 mkdir -p 를 실행 하는 것이 가능합니다.
존재하지 않는 위치에 파일을 복사하는 데 사용할 수 있는 매우 멋진 스크립트를 만들었습니다.
#!/bin/bash
if [ ! -d "$2" ]; then
mkdir -p "$2"
fi
cp -R "$1" "$2"
이제 저장하고 권한을 부여하고 다음을 사용하여 실행하십시오.
./cp-improved SOURCE DEST
나는 -R 옵션을 넣었지만 초안 일뿐이며 그것이 가능하다는 것을 알고 여러 가지 방법으로 향상시킬 것입니다. 그것이 당신을 돕는 희망
다음 명령을 사용할 수도 있습니다 find
.
find ./ -depth -print | cpio -pvd newdirpathname
rsync가 작동합니다!
#file:
rsync -aqz _vimrc ~/.vimrc
#directory:
rsync -aqz _vim/ ~/.vim
cp -Rvn /source/path/* /destination/path/
cp: /destination/path/any.zip: No such file or directory
경로에 소스 파일이 있으면 대상에 기존 경로가 만들어지지 않습니다. 이것은 빈 디렉토리를 만들지 않습니다.
얼마 전에 xxxxxxxx를 보았습니다. 여유 공간이 부족하여 해당 파일이나 디렉토리가 없습니다. 오류 메시지없이.
ditto와 함께 :
ditto -V /source/path/* /destination/path
ditto: /destination/path/any.zip: No space left on device
사용 가능한 공간 cp -Rvn /source/path/* /destination/path/
이 예상대로 작동하면
참고 URL : https://stackoverflow.com/questions/947954/how-to-have-the-cp-command-create-any- 필요한 폴더 -for-copying-a-file-to-a
'development' 카테고리의 다른 글
정의 : HashSet이란 무엇입니까? (0) | 2020.02.21 |
---|---|
Vim 80 열 레이아웃 문제 (0) | 2020.02.20 |
Chrome과 같은 더 나은 브라우저로 .NET WebBrowser 컨트롤을 대체 하시겠습니까? (0) | 2020.02.20 |
프레임 버스터 버스터 ... 버스터 코드 필요 (0) | 2020.02.20 |
Java에서 parseInt와 valueOf의 차이점은 무엇입니까? (0) | 2020.02.20 |