접두사가 동일한 여러 디렉터리의 하위 폴더에 파일을 복사하는 방법은 무엇입니까?

접두사가 동일한 여러 디렉터리의 하위 폴더에 파일을 복사하는 방법은 무엇입니까?

현재 디렉토리에 "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

관련 정보