현재 디렉토리에 "foo.txt"라는 파일이 있습니다. 이 디렉토리에는 다음과 같은 이름도 있습니다.내 폴더 1,내 폴더 2잠깐... 각 폴더에는 "constant"라는 하위 폴더가 있습니다.
"foo.txt"를 복사하고 싶습니다.myfolder1/상수,myfolder2/상수,등...
다음 명령을 사용하여 이 작업을 수행하려고 합니다.
cp foo.txt myfolder*/constant
이로 인해 오류가 발생했습니다.
cp: omitting directory `myfolder1/constant'
cp: omitting directory `myfolder2/constant'
etc...
접두사가 동일한 여러 디렉터리의 하위 폴더에 파일을 복사하는 방법이 있습니까(이 경우 접두사는 "myfolder"입니다)?
답변1
세 개 이상의 매개변수를 사용하는 경우 cp
마지막 매개변수는 대상 디렉터리로 간주되고 다른 매개변수는 해당 위치에 복사될 파일로 간주됩니다.
cp
와일드카드를 사용하고 있다는 것을 몰랐습니다. 쉘은 명령이 와일드카드를 보기 전에 와일드카드를 확장합니다. 따라서 cp
일부 다중 대상 기능이 있어도 이 구문을 사용할 수 없습니다.
루프가 필요합니다. Bourne과 같은 쉘에서:
(ret=0
for dir in myfolder*/constant/; do
cp foo.txt "$dir" || ret=$?
done
exit "$ret")
비즈니스는 $ret
실패에 대한 종료 상태를 보고하게 됩니다.cp