2011-11-25 7 views
5

디렉토리에서 파일을 복사하고 복사 한 파일을 새 디렉토리에 저장하는 스크립트를 만들려고합니다.쉘 명령어 결합 방법

나는 cp 명령이 파일을 복사하고 mkdir 명령이 디렉토리를 만들 것이라고 알고 있지만이 두 명령을 한 줄로 결합하는 방법을 아는 사람이 있습니까?

지금까지 나는이 오류 메시지가이 디렉토리 구조를 만들 mkdir를 호출 할 디렉토리 newdir

답변

8
mkdir -p /root/newdir/ && cp /root/*.doc /root/newdir/ 

을 만들 않습니다 그러나

mkdir: cannot create directory 'cp': Files exists 
mkdir: cannot create directory '/root/files/wp.doc: File exists 
mkdir: cannot create directory 'mkdir' : File exists 
mkdir: cannot create directory '/root/files/new dir: file exists 

을 제공

mkdir /root/newdir/ cp /root/*.doc /root/newdir 

이 명령 실행이 성공했는지 확인하고 0을 호출하십시오. 명령이 있었다면명령입니다. 정확하게 명령이 종료 쉘을 말하지 않기 때문에 두 명령

+0

... CP : 생략 디렉토리 '에서 mkdir' – user1065861

+0

@ user1065861 그래서 당신은이 중 하나를 시도 할 수 있습니다 :'cp'는 기본적으로 디렉토리를 복사하지 않습니다. 원하는 경우'-p' 옵션을 지정해야합니다. '/ root' 디렉토리의 내용을 확인하십시오 - 명령으로 실행하는 중에 의도하지 않은 디렉토리를 생성했을 가능성이 있습니다. –

+0

오류 ...'-r' 옵션, 죄송합니다. –

2
mkdir /root/newdir/; cp /root/*.doc /root/newdir 
0

장소 세미콜론이 발생합니다. 이 경우 :

mkdir /root/newdir/ cp /root/*.doc /root/newdir 

당신의 명령 cpmkdir 명령에 대한 인수로 이동하고 쉘은 cp라는 이름의 파일을 만들려고합니다. 다른 모든 사람들에게도 마찬가지입니다.

명령어 뒤에 ;을 삽입합니다. 명령이 종료되었고 다음 단어가 다른 명령임을 쉘에 알려줍니다.

줄 바꿈 (Return 키)은 또한 명령 seprator로 취급됩니다. 따라서 각 명령을 다음 행에 입력하면 잘 수행됩니다.

mkdir /root/newdir/ ; cp /root/*.doc /root/newdir 

또는이 아주 많이는 오류 메시지와 함께 올 않지만 덕분에 작동

mkdir /root/newdir/ 

cp /root/*.doc /root/newdir 
0

사이

+0

좋은 설명이지만 해결책으로는'mkdir' 실패의 가능성을 처리하기 때문에'; '에 비해 더 선호합니다 (http://stackoverflow.com/a/8271018/667820). –

관련 문제