동일한 이름을 가진 모든 하위 디렉터리에 4개의 파일을 복사하고 싶습니다. 예제 디렉토리는 다음 위치에 있습니다.
/toplevel/images/sources
또 하나가 들어있어요
/toplevel/documents/files/sources
"sources"라는 다른 하위 디렉터리에도 이러한 파일이 모두 포함되어야 합니다. "최상위" 디렉터리에서 이 작업을 수행하려면 cp 명령을 어떻게 사용합니까?
답변1
다음 명령을 사용하여 모든 디렉터리 목록을 가져올 수 있습니다 find
. 예를 들면 다음과 같습니다.
$ find /toplevel -name sources -type d
/toplevel/documents/files/sources
/toplevel/images/sources
-name sources
find
이름이 있는 결과만 알려주고 디렉터리 sources
만 -type d
표시하도록 필터링합니다. 이것을 for 루프와 결합하면 /myfiles
디렉토리(예를 들어)의 모든 파일을 여기에 복사할 수 있습니다.
$ for directory in $(find /toplevel -name sources -type d); do cp /myfiles/* "$directory"; done
$ tree /toplevel
/toplevel
├── documents
│ └── files
│ └── sources
│ ├── file_1
│ ├── file_2
│ ├── file_3
│ └── file_4
└── images
└── sources
├── file_1
├── file_2
├── file_3
└── file_4
5 directories, 8 files