Command-Line

為沒有文件夾本身的文件夾中的每個文件創建一個文件夾

  • September 3, 2019
       | folderA1 | fileA11, fileA12, ...
folderA | folderA2 | fileA21, fileA22...
       |  ...     | ... 

我想複製它表示為:

       | folderA1 | folderA11, folderA12, ...
folderB | folderA2 | folderA21, folderA22, ...
       | ...      |  ...

原始文件夾A(及其結構)保持原樣(未更改)。

我正在嘗試為(文件夾)A 中的每個文件在(文件夾)B 中創建一個**文件夾,而沒有文件夾本身。**我還想維護原始文件夾(A)的目錄結構。

使用這個問題我能夠實現上述的生成,但它包含文件夾 A 本身。

find source/. -type d -exec mkdir -p dest/{} \; \
  -o -type f -exec mkdir -p dest/{} \;

好像:

        |         | folderA1 | folderA11, folderA12, ...
folderB | folderA | folderA2 | folderA21, folderA22, ...
        |         | ...

您可以從那裡cd進入folderA並執行命令:

cd folderA
find . -type d -o -type f -exec bash -c '
 for path; do mkdir -p "/path/to/folderB/${path/file/folder}"; done
' bash {} +

參數擴展${path/file/folder}將 each 重命名fileXYfolderXY

如果每個文件夾都包含文件,您可以刪除-type d -o.

引用自:https://unix.stackexchange.com/questions/538896