使用 GNU find 递归创建具有随机内容的文件
Recursively create file with random content with GNU find
我的目的是快速创建如下目录树:
.
|-- dir1
| |-- 01
| | `-- file_00
| |
| |-- 02
| | `-- file_00
| |
| |-- 03
| | `-- file_00
| |
| |-- 04
| `-- file_00
|
`-- dir2
|-- 01
| `-- file_00
|
|-- 02
| `-- file_00
|
|-- 03
| `-- file_00
|
`-- 04
`-- file_00
我完成了:
mkdir {dir1,dir2}
mkdir ./{dir1,dir2}/{01,02,03,04}
touch ./{dir1,dir2}/{01,02,03,04}/file_00
但是当我想追加一个运行dom号时,$RANDOM
是运行dom就够了,给每个file_00
我运行成问题。我试过了:
find . -type f -name 'file_00' -exec echo $RANDOM > {} \;
但是在工作目录上创建了一个名为 {}
的文件,其中相同的 运行dom 编号重复了与 find
匹配的次数(或者我假设).
如何给每个 file_00
写一个 运行dom 号码?
/dev/random
可用于 WSL
小改进,使用 mkdir -p
,你只需要一个 mkdir 命令。
在 -exec 指令中调用 shell:
find . -type f \
-name file_00 \
-exec bash -c 'for file; do echo $RANDOM > "$file"; done' bash '{}' +
或者只是迭代 find
结果
find . -type f -name file_00 -print0 | while IFS= read -d '' -r filename; do
echo $RANDOM > "$filename"
done
我的目的是快速创建如下目录树:
.
|-- dir1
| |-- 01
| | `-- file_00
| |
| |-- 02
| | `-- file_00
| |
| |-- 03
| | `-- file_00
| |
| |-- 04
| `-- file_00
|
`-- dir2
|-- 01
| `-- file_00
|
|-- 02
| `-- file_00
|
|-- 03
| `-- file_00
|
`-- 04
`-- file_00
我完成了:
mkdir {dir1,dir2}
mkdir ./{dir1,dir2}/{01,02,03,04}
touch ./{dir1,dir2}/{01,02,03,04}/file_00
但是当我想追加一个运行dom号时,$RANDOM
是运行dom就够了,给每个file_00
我运行成问题。我试过了:
find . -type f -name 'file_00' -exec echo $RANDOM > {} \;
但是在工作目录上创建了一个名为 {}
的文件,其中相同的 运行dom 编号重复了与 find
匹配的次数(或者我假设).
如何给每个 file_00
写一个 运行dom 号码?
/dev/random
可用于 WSL
小改进,使用 mkdir -p
,你只需要一个 mkdir 命令。
在 -exec 指令中调用 shell:
find . -type f \
-name file_00 \
-exec bash -c 'for file; do echo $RANDOM > "$file"; done' bash '{}' +
或者只是迭代 find
结果
find . -type f -name file_00 -print0 | while IFS= read -d '' -r filename; do
echo $RANDOM > "$filename"
done