파일 시스템과 특수 파일 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