简体   繁体   中英

How can I create a file in each folder?

I want to create an index.html file in each folder of my project in linux.

index.html should contain some sample code.

How can I create a file in single command?

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

This'll create an index.html in . and all subdirectories.

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

HTH

Assuming you have a list of your project directories in a file called "projects.txt", you can do this (for bash and zsh)

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

To create your projects.txt, you can use the find command. You could replace the cat directly with a find invocation but I thought it more clear to separate the two operations.

I know it's an old question but none of the current answers allow to add some sample code, here my solution:

#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 {} \;

The following command will create an empty index.html file in the current directory

touch index.html

You will need to do the appropriate looping if necessary.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM