Linux
僅複製具有特定副檔名的文件,同時根據父文件夾重命名每個文件
我有幾個目錄:
├── 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
我怎樣才能做到這一點?
相關主題我已經關注但沒有任何成功
你可以這樣做
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
確保在沒有事先互動的情況下不會覆蓋任何文件,請添加。