Filenames
將多個文件夾中的多個文件複製到一個
如何將多個文件夾中的多個文件複製到一個文件夾中,並根據複製的目錄更改它們的名稱?
初始目錄層次結構:
folder1/ file1.gz filexyz.gz folder2/ file1.gz filexyz.gz folder3/ file1.gz filexyz.gz
結果:
folder1_file1.gz folder2_file1.gz folder3_file1.gz folder1_filexyz.gz folder2_filexyz.gz folder3_filexyz.gz
使用一個簡單的 shell 循環,假設文件應該被複製到 value 給定的目錄
$destdir
:for pathname in */*.gz; do cp -i -- "$pathname" "$destdir/$( dirname -- "$pathname" )_$( basename -- "$pathname" )" done
像這樣的東西?
#!/bin/bash -ex DESTDIR="PATH/TO/FINAL/DESTINATION/DIRECTORY" for DIRS in /PATH/TO/YOUR/DIRECTORIES/*/; do for FLES in $DIRS*.gz; do cp $FLES $DESTDIR/$(echo $(basename $DIRS)"_"$(basename $FLES)) done done
編輯:我懶得在程式碼中添加任何解釋,因為 OP 沒有費心表明他們已經嘗試自己解決問題(如果有的話)。但是應該提供同樣的幫助,因此我的文章。