複数のディレクトリがあります。
├── 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
各ディレクトリには1つの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