Как создать файл в каждой папке?

Я хочу создать файл index.html в каждой папке моего проекта в Linux.

index.html должен содержать некоторый пример кода.

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

Ответ 1

find . -type d -exec touch {}/index.html \;

Это создаст index.html в . и всех подкаталогах.

Ответ 2

cd /project_dir && find . -type d -exec touch \{\}/index.htm \;

НТН

Ответ 3

Предполагая, что у вас есть список ваших каталогов проектов в файле под названием "projects.txt", вы можете сделать это (для bash и zsh)

for i in $(cat projects.txt)
do
  touch $i/index.html
done.

Чтобы создать файл projects.txt, вы можете использовать команду find. Вы можете напрямую заменить cat на вызов find, но я подумал, что было бы более ясно разделить две операции.

Ответ 4

Я знаю, что это старый вопрос, но ни один из текущих ответов не позволяет добавить пример кода, вот мое решение:

#create a temp file
echo "<?php // Silence is golden" > /tmp/index.php

#for each directory copy the file
find /mydir -type d -exec cp /tmp/index.php {} \;

#Alternative : for each directory copy the file where the file is not already present
find /mydir -type d \! -exec test -e '{}/index.php' \; -exec cp /tmp/index.php {} \;

Ответ 5

Следующая команда создаст пустой файл index.html в текущем каталоге

touch index.html

При необходимости вам понадобится соответствующий цикл.