如何将文件多次复制到文件系统中随机选择的路径中?

如何将文件多次复制到文件系统中随机选择的路径中?

我有一个文件系统和一个特殊文件 foo.我希望脚本多次(5,10 或 100)选择此文件系统中文件夹的随机路径,并将文件 foo 复制到每个文件夹中。

在此输入图像描述

我有一个想法,但还不足以将其制作成真正的脚本,并且不知道从表演的角度来看这个想法是否有意义。

   idea in pseudo-script:

    read into variable n how many random paths should be found
    file / -type d > file  # put all existing directory paths into a file
    repeat n-times{
    choose_random_line<file | xargsintosecondargument cp foo 
   /* chose a random line from file and use it as second argument of copy
    command, first is foo. */
    }

答案1

在 GNU 系统上:

find / -type d -print0 | shuf -zn5 | xargs -r0n1 cp foo

(现在将文件复制到 /sys 或 /proc 之类的目录是没有意义的,甚至是不可能的,您可能只想添加-xdev到安装在的文件系统上的选定目录/)。

您可以通过以下方式使其与 FreeBSD 和 GNU 兼容:

find / -type d -print0 | sort -zR | tr '\0\n' '\n\0' | head -n5 |
  tr '\0\n' '\n\0' | xargs -r0n1 cp foo

相关内容