Как создать файл в каталоге одновременно?

Как создать файл в каталоге одновременно?

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

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

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

решение1

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

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

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

    mkpath dir1/dir2/dir3/file.txt

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

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

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

Связанный контент