我只是在Linux中练习这个,但我想知道如何使用它touch
来创建一个空文件并让它存在于多个目录中.
例如,我有一个像followng一样的目录布局:
~/main
~/main/submain1
~/main/submain2
.
.
.
~/main/submainN
Run Code Online (Sandbox Code Playgroud)
我怎样才能将所创建的文件touch
存在于所有submain
目录中?我的第一个想法是使用一个循环来访问每个目录cd
并touch
在每次迭代时调用该命令.我想知道是否有更优雅的解决方案?
fed*_*qui 18
那这个呢:
find . -type d -exec touch {}/hiya \;
Run Code Online (Sandbox Code Playgroud)
这适用于任何深度级别的目录.
find . -type d -exec touch {}/hiya \;
Run Code Online (Sandbox Code Playgroud)
find . -type d
- >搜索目录结构中的目录.-exec touch {}/hiya \;
- >给出每个结果,其值存储在{}
.所以touch {}/hiya
我们所做的就是触摸"某事"/ hiya.最后\;
是exec
in find
子句要求.另一个find
用法示例:
find . -type d -exec ls {} \;
Run Code Online (Sandbox Code Playgroud)
$ mkdir a1
$ mkdir a2
$ mkdir a3
$ mkdir a1/a3
Run Code Online (Sandbox Code Playgroud)
检查目录:
$ find . -type d
.
./a2
./a1
./a1/a3
./a3
Run Code Online (Sandbox Code Playgroud)
触摸文件
$ find . -type d -exec touch {}/hiya \;
Run Code Online (Sandbox Code Playgroud)
寻找他们:
$ find . -type f
./a2/hiya
./hiya
./a1/hiya
./a1/a3/hiya
./a3/hiya
Run Code Online (Sandbox Code Playgroud)
文件/目录的总列表是:
$ find .
.
./a2
./a2/hiya
./hiya
./a1
./a1/hiya
./a1/a3
./a1/a3/hiya
./a3
./a3/hiya
Run Code Online (Sandbox Code Playgroud)
小智 5
如果您的目录命名结构的编号与示例 IRL 类似,您可以执行以下操作:
touch ~/main/submain{1..N}/file.txt
Run Code Online (Sandbox Code Playgroud)
这会将 file.txt 放入名为 submain1 到 submainN 的每个文件夹中
如果它们的编号不是 1-N,您也可以尝试:
touch ~/main/{foldername,differentfolder,anotherfolder}/file.txt
Run Code Online (Sandbox Code Playgroud)
这是一个比上面的解决方案不太通用的解决方案,但对于学习者来说可能更容易理解!
归档时间: |
|
查看次数: |
6628 次 |
最近记录: |