我只是在Linux中练习这个,但我想知道如何使用touch
创建一个空文件并让它存在于多个目录中。
例如,我有一个像followng一样的目录布局:
~/main
~/main/submain1
~/main/submain2
.
.
.
~/main/submainN
如何让touch
创建的文件存在于所有submain
目录中?我的第一个想法是使用cd
访问每个目录的循环,并在每次迭代时调用touch
命令。我想知道是否有更优雅的解决方案?
答案 0 :(得分:16)
这个怎么样:
find . -type d -exec touch {}/hiya \;
这适用于任何深度级别的目录。
find . -type d -exec touch {}/hiya \;
find . -type d
- >搜索目录结构中的目录。-exec touch {}/hiya \;
- >给定每个结果,其值存储在{}
中。因此,touch {}/hiya
我们所做的就是触摸“某事”/ hiya。 \;
条款中exec
需要最终find
。 find
用法的另一个例子:
find . -type d -exec ls {} \;
$ mkdir a1
$ mkdir a2
$ mkdir a3
$ mkdir a1/a3
检查目录:
$ find . -type d
.
./a2
./a1
./a1/a3
./a3
触摸文件
$ find . -type d -exec touch {}/hiya \;
寻找他们:
$ find . -type f
./a2/hiya
./hiya
./a1/hiya
./a1/a3/hiya
./a3/hiya
文件/目录的总列表是:
$ find .
.
./a2
./a2/hiya
./hiya
./a1
./a1/hiya
./a1/a3
./a1/a3/hiya
./a3
./a3/hiya