так что я знаю, как сделать несколько каталогов одновременно, например ..

mkdir -p tree/{dir1,dir2,dir3}

но как мне сделать каталог и поместить в него файлы одновременно? В конечном итоге я хочу сделать это во многих одновременно.  

1 ответ1

0

Для этого не существует единой команды, но вы можете создать свою собственную:

    mkpath(){ mkdir -p ${1%/*} && mkfile 0 $1; }

который может быть вызван с одним аргументом, указывающим путь к файлу, который будет создан. Будут созданы любые каталоги, которые необходимо создать по пути, после чего будет создан пустой файл с указанным именем файла, например

    mkpath dir1/dir2/dir3/file.txt

Примечание. Это примерная функция, которая не была тщательно протестирована для учета различных факторов и ситуаций.Для обеспечения устойчивости может потребоваться подходящее отслеживание ошибок.

Поскольку он наследует функции своих компонентных функций, mkdir и mkfile , две важные характеристики переносятся на mkpath в его нынешнем виде:

  • Кажется безопасным указать путь, который включает в себя уже существующие каталоги, и эти каталоги и их содержимое не будут перезаписаны;
  • И наоборот, если файл существует в указанном месте, он будет перезаписан пустым файлом, и будет невозможно восстановить содержимое старого файла.

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