Linux循环 选择文件,bash – 从shell脚本中的目录中选择随机文件的最佳方法

从shell脚本中的目录中选择一个随机文件的最好方法是什么?

这里是我在Bash的解决方案,但我会非常感兴趣的一个更便携的(非GNU)版本在Unix适当使用。

dir='some/directory'

file=`/bin/ls -1 "$dir" | sort --random-sort | head -1`

path=`readlink --canonicalize "$dir/$file"` # Converts to full path

echo "The randomly-selected file is: $path"

任何人有任何其他想法?

编辑:lhunath是关于解析ls的好点。我想这是由于是否你想要便携或不。如果你有GNU findutils和coreutils,那么你可以做:

find "$dir" -maxdepth 1 -mindepth 1 -type f -print0 \

| sort --zero-terminated --random-sort \

| sed 's/\d000.*//g/'

哇,那很有趣!它也匹配我的问题更好,因为我说“随机文件”。 Honsetly虽然,这些天很难想象一个Unix系统部署有安装GNU但不是Perl 5。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值