Создайте структуру каталогов с помощью mkdir и нажмите

Только для завершения, вот еще одна команда для монтирования раздела как доступного только для чтения (полезно для спящих разделов Windows):

udisksctl mount --block-device /dev/sda3 --options ro

Если у вас есть разрешение на монтирование раздела с помощью файлового менеджера ( если вы являетесь администратором, например), то вы должны иметь возможность запускать эту команду, не используя sudo.

Это доступно в новейших версиях Ubuntu (например, 13.04 и 13.10). [!d2 ]

Если udisksctl недоступен, возможно, udisks. У него разные аргументы, поэтому проверьте man-страницу.

3
задан 23 June 2017 в 21:21

4 ответа

Вот два способа сделать это. Существует больше, но концепция будет такой же: либо расширять то, что у вас есть, либо перебирать список и разбивать каждый элемент списка на части.

Длинный путь сделать это

ничего особенного, что нужно сделать с помощью touch. Просто добавьте те же аргументы, что и для команды mkdir, чтобы включить файлы.

bash-4.3$ mkdir -p mydir/{colors/{basic,blended},shape,animals/{mammals,reptiles}} bash-4.3$ tree mydir mydir ├── animals │   ├── mammals │   └── reptiles ├── colors │   ├── basic │   └── blended └── shape 7 directories, 0 files bash-4.3$ touch mydir/{colors/{basic/{red,blue,green},blended/{yellow,orange,pink}},shape/{circle,square,cube},animals/{mammals/{platipus,bat,dog},reptiles/{snakes,crocodile,lizard}}} bash-4.3$ tree mydir mydir ├── animals │   ├── mammals │   │   ├── bat │   │   ├── dog │   │   └── platipus │   └── reptiles │   ├── crocodile │   ├── lizard │   └── snakes ├── colors │   ├── basic │   │   ├── blue │   │   ├── green │   │   └── red │   └── blended │   ├── orange │   ├── pink │   └── yellow └── shape ├── circle ├── cube └── square

Короткие пути

Если вы заметили, у всех ваших каталогов есть файлы для создания. Таким образом, мы можем создать список элементов (фактически массив bash) и перебрать их, используя mkdir с удалением суффикса, а затем touch. Пример:

bash-4.3$ arr=( mydir/{colors/{basic/{red,blue,green},blended/{yellow,orange,pink}},shape/{circle,square,cube},animals/{mammals/{platipus,bat,dog},reptiles/{snakes,crocodile,lizard}}} ) bash-4.3$ for i in "${arr[@]}"; do mkdir -p "${i%/*}" && touch "$i"; done bash-4.3$ tree mydir mydir ├── animals │   ├── mammals │   │   ├── bat │   │   ├── dog │   │   └── platipus │   └── reptiles │   ├── crocodile │   ├── lizard │   └── snakes ├── colors │   ├── basic │   │   ├── blue │   │   ├── green │   │   └── red │   └── blended │   ├── orange │   ├── pink │   └── yellow └── shape ├── circle ├── cube └── square 7 directories, 15 files

Замечание: если у вас есть пробелы в любом имени файла или каталога, убедитесь, что вы одинажите или дважды указываете эти элементы, например:

arr=( mydir/{'with space',without_space/{file1,file2}} )

См. также.

6
ответ дан 18 July 2018 в 11:11
mkdir -p mydir/{colors/{basic,blended},shape,animals/{mammals,reptiles}} touch mydir/colors/{basic/{red,blue,green},blended/{yellow,orange,pink}} touch mydir/shape/{circle,square,cube} touch mydir/animals/{mammals/{platypus,bat,dog},reptiles/{snakes,crocodile,lizard}}

это идеальное решение .....

-2
ответ дан 18 July 2018 в 11:11

Вот два способа сделать это. Существует больше, но концепция будет такой же: либо расширять то, что у вас есть, либо перебирать список и разбивать каждый элемент списка на части.

Длинный путь сделать это

ничего особенного, что нужно сделать с помощью touch. Просто добавьте те же аргументы, что и для команды mkdir, чтобы включить файлы.

bash-4.3$ mkdir -p mydir/{colors/{basic,blended},shape,animals/{mammals,reptiles}} bash-4.3$ tree mydir mydir ├── animals │   ├── mammals │   └── reptiles ├── colors │   ├── basic │   └── blended └── shape 7 directories, 0 files bash-4.3$ touch mydir/{colors/{basic/{red,blue,green},blended/{yellow,orange,pink}},shape/{circle,square,cube},animals/{mammals/{platipus,bat,dog},reptiles/{snakes,crocodile,lizard}}} bash-4.3$ tree mydir mydir ├── animals │   ├── mammals │   │   ├── bat │   │   ├── dog │   │   └── platipus │   └── reptiles │   ├── crocodile │   ├── lizard │   └── snakes ├── colors │   ├── basic │   │   ├── blue │   │   ├── green │   │   └── red │   └── blended │   ├── orange │   ├── pink │   └── yellow └── shape ├── circle ├── cube └── square

Короткие пути

Если вы заметили, у всех ваших каталогов есть файлы для создания. Таким образом, мы можем создать список элементов (фактически массив bash) и перебрать их, используя mkdir с удалением суффикса, а затем touch. Пример:

bash-4.3$ arr=( mydir/{colors/{basic/{red,blue,green},blended/{yellow,orange,pink}},shape/{circle,square,cube},animals/{mammals/{platipus,bat,dog},reptiles/{snakes,crocodile,lizard}}} ) bash-4.3$ for i in "${arr[@]}"; do mkdir -p "${i%/*}" && touch "$i"; done bash-4.3$ tree mydir mydir ├── animals │   ├── mammals │   │   ├── bat │   │   ├── dog │   │   └── platipus │   └── reptiles │   ├── crocodile │   ├── lizard │   └── snakes ├── colors │   ├── basic │   │   ├── blue │   │   ├── green │   │   └── red │   └── blended │   ├── orange │   ├── pink │   └── yellow └── shape ├── circle ├── cube └── square 7 directories, 15 files

Замечание: если у вас есть пробелы в любом имени файла или каталога, убедитесь, что вы одинажите или дважды указываете эти элементы, например:

arr=( mydir/{'with space',without_space/{file1,file2}} )

См. также.

6
ответ дан 24 July 2018 в 19:44
  • 1
    Я пробовал первый, но я получаю сообщение об ошибке «Не могу касаться: нет такого файла или каталога». Пожалуйста помоги. – Neeraj gupta 28 June 2017 в 16:37
mkdir -p mydir/{colors/{basic,blended},shape,animals/{mammals,reptiles}} touch mydir/colors/{basic/{red,blue,green},blended/{yellow,orange,pink}} touch mydir/shape/{circle,square,cube} touch mydir/animals/{mammals/{platypus,bat,dog},reptiles/{snakes,crocodile,lizard}}

это идеальное решение .....

-2
ответ дан 24 July 2018 в 19:44

Другие вопросы по тегам:

Похожие вопросы: