여러 디렉토리가 있습니다.
├── folder1.x
│ ├── dsferwe
│ ├── ewrwr342
│ ├── analysis
│ ├── fdsds
│ ├── vcxvcxz
│ ├── 324322
│ ├── export.asc
│ ├── f_random_subfolder.xf
│ │ ├── -.method
│ │ ├── desktop.ini
│ │ ├── lock.file
│ │ └── submethods.xml
│ └── Sync
├── random_folder4.x
│ ├── dsferwe
│ ├── ewrwr342
│ ├── analysis
│ ├── fdsds
│ ├── vcxvcxz
│ ├── 324322
│ ├── export.asc
│ ├── 22random_subfolder.xf
│ │ ├── -.method
│ │ ├── desktop.ini
│ │ ├── lock.file
│ │ └── submethods.xml
│ └── Sync
├── X93430.x
│ ├── dsferwe
│ ├── ewrwr342
│ ├── analysis
│ ├── fdsds
│ ├── vcxvcxz
│ ├── 324322
│ ├── export.asc
│ ├── random_subfolder222.xf
│ │ ├── -.method
│ │ ├── desktop.ini
│ │ ├── lock.file
│ │ └── submethods.xml
│ └── Sync
각 디렉터리에는 하나의 export.asc
파일이 포함되어 있습니다.
copy
모든 export.asc
파일을 새 디렉토리로 이동하면서 상위 디렉토리와 동일한 이름을 갖도록 이름을 바꾸고 싶습니다 . 따라서 결국 위의 예를 기반으로 이 파일을 새 폴더에 넣습니다.
folder1.x.asc
random_folder4.x.asc
X93430.x.asc
이 목표를 어떻게 달성할 수 있나요?
관련된팔로우했지만 아직 성공하지 못한 주제
답변1
당신은 이것을 할 수 있습니다find -exec sh -c ...
find . -name export.asc \
-exec sh -c 'cp "$1" /path/to/new/folder/"$(basename "$(dirname "$1")")".asc' sh {} \;
"$(basename "$(dirname "$1")")"
파일이 있는 폴더의 이름이 됩니다.
사전 상호 작용 없이 파일을 덮어쓰지 않도록 하려면 에 추가하세요 -i
.cp