GNULinuxOnboard Asked: 2019-03-01 13:17:29 +0800 CST2019-03-01 13:17:29 +0800 CST 2019-03-01 13:17:29 +0800 CST 如何在随机位置递归创建 1 gb 文件 772 我需要在我的文件系统的随机位置创建一堆 1 GB 的文件,并让这个过程一遍又一遍地重复。我不在乎这些文件是用随机数据填充还是为空,我只需要用这些文件填充系统。我希望能够使用相同的名称创建它们。 如果有人有任何答案,请分享。谢谢。 filesystem storage 1 个回答 Voted Best Answer terdon 2019-03-01T13:37:23+08:002019-03-01T13:37:23+08:00 此命令将在文件系统中的随机位置创建 10 个文件,每个 1GB: find / -mount -type d -print0 2>/dev/null | shuf -zn 10 | while IFS= read -r -d '' dir; do sudo fallocate -l 1G "$dir"/evilFile && echo "Created $dir/evilFile"; done 解释 find / -mount -type d -print0 2>/dev/null: 找到你的所有目录/。-moun告诉find不要进入已挂载的文件系统。这是可选的,但如果您有任何已安装的网络共享等,这是一个好主意。然后,-print0意思是“以 NULL ( \0) 而不是换行 ( \n) 结束每一行”。如果您找到的任何目录名称包含换行符,则需要这个。最后,2>/dev/null就是丢弃没有权限读取目录的错误信息。您也可以通过find以 root 身份运行该命令来避免这种情况,但如果不进入系统目录,这已经足够危险了。 shuf -zn 10:随机选择10行。让-z我们shuf处理以 NULL 结尾的行。 while IFS= read -r -d '' dir; do: 读取每个以 null 结尾的行,将每个目录保存为$dir和... sudo fallocate -l 1G "$dir"/evilFile: 在那个目录下创建一个 1G 的文件。
此命令将在文件系统中的随机位置创建 10 个文件,每个 1GB:
解释
find / -mount -type d -print0 2>/dev/null
: 找到你的所有目录/
。-moun
告诉find
不要进入已挂载的文件系统。这是可选的,但如果您有任何已安装的网络共享等,这是一个好主意。然后,-print0
意思是“以 NULL (\0
) 而不是换行 (\n
) 结束每一行”。如果您找到的任何目录名称包含换行符,则需要这个。最后,2>/dev/null
就是丢弃没有权限读取目录的错误信息。您也可以通过find
以 root 身份运行该命令来避免这种情况,但如果不进入系统目录,这已经足够危险了。shuf -zn 10
:随机选择10行。让-z
我们shuf
处理以 NULL 结尾的行。while IFS= read -r -d '' dir; do
: 读取每个以 null 结尾的行,将每个目录保存为$dir
和...sudo fallocate -l 1G "$dir"/evilFile
: 在那个目录下创建一个 1G 的文件。