3

Я хотел бы скопировать структуру папок (без файлов), но только папки верхнего уровня. То есть с моим источником:

folder a
 * folder 1
 * folder 2
   * folder X
folder b
 * folder 3
folder c

Я хочу, чтобы мой пункт назначения был просто:

folder a
folder b
folder c

Как я могу сделать это в Linux?

2 ответа2

5

С GNU find , который поддерживает -printf , и GNU xargs , который поддерживает -r:

find /source/path -mindepth 1 -maxdepth 1 -type d -printf '/target/path/%f\0' | xargs -r -0 -- mkdir --
2

Вы можете просто сделать это:

for dir in *; do mkdir /path/to/"$dir"; done

Это предполагает, что вы хотите скопировать все в текущем каталоге и что все, что у вас есть в этом каталоге, это целевые папки, а не файлы. Он соберет все имена в текущем каталоге (*) и запустит mkdir чтобы создать пустые папки с таким именем в целевом пути.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .