Вы могли бы использовать shuf
(из пакета GNU coreutils), который генерирует перестановки , а не отдельные случайные выборки - что-то вроде
for f in *; do read i; echo mv -- "$f" "file-$i"; done < <(shuf -i 1-10)
или (возможно, лучше) перемешайте имена файлов - а затем просто переименуйте их последовательно
i=1; shuf -z -e -- * | while IFS= read -rd '' f; do echo mv -- "$f" "File-$((i++))"; done
Нет; он пишет только то, что ему нужно, не пытаясь обнулить весь объем. Используйте
cat /dev/zero > /dev/sda
, чтобы убедиться, что данные исчезли.