USB 장치의 모든 파일 이름을 무작위로 바꾸고 싶습니다. 실제로 내 차의 튜너에는 임의 기능이 없습니다.
PHP로 이 작업을 수행할 수 있을 것 같습니다. 하지만 쉘 스크립트에서는 더 짧은 작업도 수행할 수 있다고 확신합니다. 그렇죠?
아이디어?
답변1
일정한 너비의 난수를 접두사로 추가할 수 있습니다. 이것이 제가 오디오 파일을 무작위화하기 위해 수행하는 작업입니다.
for i in *; do mv "$i" "$(seq -w 0 999 | shuf -n 1)_$i"; done
답변2
Linux를 실행 중이고 현재 디렉터리의 모든 파일을 무작위로 정렬하고 파일 이름에 개행 문자가 포함되어 있지 않다고 가정해 보겠습니다.
printf '%s\n' * | shuf | nl -n rz -s - |
while IFS= read -r name; do
mv -- "${name#*-}" "$name"
done
이 printf
명령은 한 줄에 하나씩 파일 이름을 인쇄합니다.shuf
입력 행에 무작위 순열을 적용합니다. 각 줄에 접두사 등을 추가합니다 nl
. 이 루프는 모든 행을 통과합니다. 명령의 이름이 등으로 변경되었습니다.000001-
000002-
while
mv
foo.mp3
000001-foo.mp3