#!/bin/bash
# This is a script for copy a random file from directory A to directory B
# By pc286,2017-11-30
#
cd A
quantity_of_file=0
for file in *
do
file_list[$quantity_of_file]=$file
let quantity_of_file+=1
done
let num_by_select=$RANDOM%$quantity_of_file
filename_by_select=${file_list[$num_by_select]}
cd ..
cp A/$filename_by_select B/
不知大大的思路更宽广一些,上一个脚本虽可参考,但限定了在当前目录下有A和B两个目录了。新改一个脚本,供参考。
#!/bin/bash
# This is a script for copy a random file from directory a to directory b
# By pc286,2017-11-30
#
Dir_A='/usr/tmp/A'
# 设置目录A的完整路径
Dir_B='/usr/tmp/B'
# 设置目录B的完整路径
cd $Dir_A
#进入目录A
quantity_of_file=0
# 此变量保存目录A的文件个数
for file in *
do
file_list[$quantity_of_file]=$file
let quantity_of_file+=1
done
# 以上遍历目录A中所有文件并存放在数组file_list中,并统计A目录中的文件个数
let num_by_select=$RANDOM%$quantity_of_file
# 随机数对文件数取余数,得到随机的数组下标
filename_by_select=${file_list[$num_by_select]}
cp $Dir_A/$filename_by_select $Dir_B/