私は直接完全なイメージを持っており、イメージをランダムな名前でそのターゲットにランダムに(確率的に)コピーするスクリプト/コマンドを設定しようとしています。現在、ファイルの競合があります)。また、問題を複雑にするのは、ファイルにスペースが含まれていて、作業中のファイルが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
空白のあるファイルを処理する方法は、-print0
GNU findディレクティブと-d
bashコマンドオプションを使用することです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
。
算術式では、(( ... ))
を使用せずに与えることができます$
。