【发布时间】:2021-09-04 07:16:51
【问题描述】:
我有一组随机的文件要循环访问(例如,我可以复制或移动)。我正在使用命令 shuf 使用 bash 函数。
inclnm 通常包含特定文件的通配符,例如
( -name A\* -o -name B\*.mse ).
这是我想循环的随机列表命令。
shuf -n $nf < <( find $dpath -maxdepth 1 -type f "${inclnm[@]}" )
【问题讨论】:
-
问题出在哪里?
-
将
shuf的输出通过管道传送到while read filename循环 -
或通过管道将其传递给
xargs以将它们全部作为参数传递给另一个命令。 -
想到了
for fl in $( shuf ... ); do。但可能有更明智的方法。使用 for 循环,find 必须运行完成,并且我可以超出命令行参数。 -
管道到
while read是最好的,以防文件名包含空格。仅当文件名包含换行符时才会失败。