Files

將所有文件從子目錄移動到父目錄

  • January 2, 2020

我有一個這樣的目錄結構:

├── Tom
│   └── c
│       └── 2
│           ├── file.jpg
│           └── text.txt
└── Sam
   ├── 1
   │   └── c
   │       └── music.aac
   ├── E
   │   └── 9
   │       └── pic.jpg
   └── b
       ├── 9
       │   └── sound.aac
       └── d
           └── book.doc

我想用一個命令將所有文件從各個子文件夾移動到主父文件夾(Tom、Sam 等),然後刪除所有空子文件夾。我怎樣才能做到這一點?

謝謝

不知道為什麼它必須是單線。但這是一種可能性。它查找給定目錄樹中的所有文件,並將每個這樣的文件向上移動兩個目錄。

find -type f | while read; do mv "$REPLY" "$(dirname $REPLY)/../../"; done

請謹慎使用,因為該命令非常適合您給出的目錄結構,並且不考慮其他情況(例如,它將從所有目錄移動文件,而不僅僅是在您顯示的葉目錄中)。

怎麼樣

find Tom Sam -type f | while read FN; do echo mv "$FN" "${FN%%/*}"; done

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