在目录shell中创建一个文件

时间:2015-03-20 21:19:03

标签: shell

我有一个名为“dir”的目录,其中有一个名为01 02 03 ... 10的html文件和文件夹。我想从文件夹“dir”创建,在每个文件夹中创建一个文件page01.html文件夹01和page02.html为dir 02等..

我试过了:

for i in `ls -a * /`; do
touch page$i.html
done

但它不会在目录中创建我的文件。

谢谢

3 个答案:

答案 0 :(得分:1)

您可以使用:

for d in {01..10}; do
   touch "$d/page$d.html"
done

答案 1 :(得分:0)

要为每个目录pageX.html创建文件X,您可以使用:

for dir in */
do
  touch "$dir/page$dir.html"
done

这是for dir in `ls -d */`的更安全且冗余度较低的版本,不应该使用它,因为它对各种类型的特殊字符都有问题。

如果您有其他目录,可以将其限制为两位数的名称:

for dir in [0-9][0-9]/
do
  touch "$dir/page$dir.html"
done

答案 2 :(得分:0)

/tmp/dir> ls -d *
01  02  03  04  05  06  07  08  09  10
/tmp/dir> for d in `ls -d *`; do f=$d/page$d.html ; touch $f; ls $f; done
01/page01.html
02/page02.html
03/page03.html
04/page04.html
05/page05.html
06/page06.html
07/page07.html
08/page08.html
09/page09.html
10/page10.html
/tmp/dir>