트리의 6개 디렉터리에 있는 파일에 대해 일부 처리(예: 복사)를 수행하고 싶습니다. 각 디렉터리 수준의 디렉터리 이름은 완전히 불규칙하며(임의의 숫자 및 문자), 마지막 수준에서 내 파일이 있는 디렉터리에는 약 20개의 디렉터리가 있습니다.
사례의 예:
cp /000157/DZW123/AHG345/DFR987/000RE7/0025RTZ/file.xxx /destination/file.xxx
같은 경우, 다른 마지막 수준(19개의 다른 수준이 있음):
cp /000157/DZW123/AHG345/DFR987/000RE7/1298FGT/file.xxx /destination/file.xxx
그러나 다른 많은 경우에는 완전히 다릅니다.
cp /001154/CVS456/SAQ452/FRO921/000VG5/0032RRT/file.xxx /destination/file.xxx
상황이 다르기 때문에 루핑은 도움이 되지 않습니다. 이름이 어떻게 지정되었든 트리의 각 분기에 대한 6개 디렉터리로 직접 이동할 수 있는 솔루션이 있다면 가장 좋을 것 같습니다. cd +n을 시도했지만 작동하지 않습니다.
답변1
find
이 작업 에 사용된
find / -mindepth 7 -maxdepth 7 -iname '*.txt' -exec echo cp {} /destination \;
*.txt
필요에 따라 패턴을 수정 echo
하거나 화면에 표시되는 내용이 마음에 들면 삭제하세요.
답변2
디렉토리 구조의 마지막 수준에 파일만 있다고 가정하면 아래와 같이 find
with를 사용하여 xargs
파일을 복사할 수 있습니다.
find . -type f -mindepth 7 -maxdepth 7 -print0 | xargs -0 cp -t /some/destination/directory
이는 하위 디렉터리 이름의 공백과 파일 이름의 공백에도 적용됩니다.