У меня есть 4 каталога: dir1 dir2 dir3 dir4. Я хочу создать файл в каждом каталоге. Я знаю, что могу сделать это: коснитесь file1.txt, а затем переместите его в dir1, затем коснитесь file2.txt, затем переместите его в dir2, но это займет много времени. Как я могу создать функцию, которая создает текстовый файл в каждом из каталогов? Благодаря
Вы не должны создавать и затем перемещать файлы - Вы можете touch
их на месте напр.
touch dir1/file1.txt dir2/file2.txt dir3/file3.txt
Это действительно не сэкономит Вам времени (или вводящий), но можно, конечно, создать функцию оболочки для этого - минимальная реализация была бы
mkfile() { touch "$1"/"$2"; }
который можно вызвать как
mkfile dir1 file1.txt
хотя, конечно, это должно действительно включать некоторую проверку / обработка ошибок (такой как, что сделать если $1
не каталог или не существует).
Если Ваш файл и структура каталогов всегда имеют форму dirN/fileN.txt
затем существуют некоторые лучшие способы автоматизировать создание такой как
seq 1 3 | xargs -I{} touch dir{}/file{}.txt
или даже (использующий GNU parallel
и расширение фигурной скобки)
parallel touch dir{}/file{}.txt ::: {1..3}
Не уверенный, что Вы рассматриваете как 'возрасты'. Нет никакой функции, которая создала бы 4 файла параллельно для Вас. Принятие Вы используете удар или подобные 'самый легкий' путь, является, вероятно, циклом. например:
DIR=dir
for i in 1 2 3 4
do
touch "${DIR}i"
done
Это довольно быстро на любой машине, которую я использую. Если Вы хотите атомарные 4 файла, создают, я боюсь, что нет никакого реального способа сделать это.
Обратите внимание, что, если существует содержание в этих 4 файлах, 'самый быстрый' путь с точки зрения задержки между первым появлением файла и последним был бы, создают файлы в другом месте и затем mv
их.