Trong bất kỳ shell nào, bạn có thể lặp qua các tệp có tên chứa khoảng trắng. Việc thay thế các khoảng trắng bằng dấu gạch dưới rất dễ dàng trong bash, ksh và zsh với ${VARIABLE//PATTERN/REPLACEMENT}
cấu trúc.
for x in *" "*; do
mv -- "$x" "${x// /_}"
done
Trên Debian, Ubuntu và các công cụ phái sinh, bạn có thể sử dụng Perl rename
(các bản phân phối khác gửi một chương trình khác như rename
và chương trình đó không hữu ích ở đây).
rename 's/ /_/g' *
Một giải pháp zsh bắt buộc:
autoload zmv
zmv '(*)' '${1// /_}'
Một giải pháp POSIX bắt buộc:
for x in *" "*; do
y=$(printf %sa "$x" | tr " " "_")
mv -- "$x" "${y%a}"
done
find -maxdepth 1
để làm chính xác những gì OP yêu cầu khi vận hành trên thư mục hiện tại.