1つのフォルダにある350個程度のファイル名をランダムに抽出したいのですが、ファイルの元の名前はすべて持ちたいです。つまり、フォルダ内のすべての名前が元の名前からランダムに生成され、新しい名前や欠落している名前がないことを意味します。可能ですか?
(私の質問を明確に説明していない場合は、この質問を自由に編集してください。)
ベストアンサー1
mkdir aux
ls | shuf > a # a=randomize list of files
(tail -n +2 a ; head -1 a) > b # b=rotate a one line
paste a b > c # c=(name1 name2)*
gawk '{system( "mv " $1 " aux/" $2)}' c # mv name1 -> aux/name2
mv aux/* . # mv aux/name -> name
rm a b
c
必要に応じて回復を続行してください。 (セカンダリファイルの名前を選択してください)