programing

cp 명령으로 파일을 대상으로 복사하는 데 필요한 폴더를 만드는 방법

i4 2023. 4. 11. 21:41
반응형

cp 명령으로 파일을 대상으로 복사하는 데 필요한 폴더를 만드는 방법

다음을 사용하여 파일을 복사할 때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의 답변을 참조하십시오.

다음 명령어를 사용할 수도 있습니다.find:

find ./ -depth -print | cpio -pvd newdirpathname
 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 옵션을 넣었습니다만, 이것은 초안일 뿐입니다.그럴 수 있다는 것을 알고 있습니다.여러 가지 방법으로 개선해 주실 수 있습니다.도움이 되길 바랍니다.

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

경로에 소스 파일이 있는 경우 대상에 기존 경로가 생성되지 않습니다.빈 디렉토리는 작성되지 않습니다.

조금 전에 xxxxxxxxx: 빈 영역이 부족하기 때문에 파일이나 디렉토리가 없습니다.에러 메세지가 표시되지 않습니다.

(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-necessary-folders-for-copying-a-file-to-a

반응형