ランダム確率でファイルをコピー

ランダム確率でファイルをコピー

私は直接完全なイメージを持っており、イメージをランダムな名前でそのターゲットにランダムに(確率的に)コピーするスクリプト/コマンドを設定しようとしています。現在、ファイルの競合があります)。また、問題を複雑にするのは、ファイルにスペースが含まれていて、作業中のファイルが30 GBであることです。

これが私が今まで持っているものです。このファイルスペースはキラーです

#!/bin/bash

for i in $(find pics/ -type f);  do
        v=$(($RANDOM % 2))
        if [ $v -eq 0 ]; then
                cp $i dups/$RANDOM.jpg;
        fi
done

私は次のように終わります:

./rcp.sh ソース/ターゲット/

私は見たことがない

ミックス

しかし、ファイル名の空白の問題も解決できませんでした。多分服用する方法があるかもしれませんこれそしてシャッフルになりますか?

ベストアンサー1

空白のあるファイルを処理する方法は、-print0GNU findディレクティブと-dbashコマンドオプションを使用することですread。参考資料も必要です"$variable"

find pics/ -type f -print0 | while IFS= read -rd "" filename; do
    v=$((RANDOM % 2))
    if (( v == 0 )); then
        cp "$filename" dups/$RANDOM.jpg
    fi
done

IFS=ビットは、-rコマンドがスペースとバックスラッシュを正しく処理することを確認するために使用されますread

算術式では、(( ... ))を使用せずに与えることができます$

おすすめ記事