tôi đã sử dụng chuyển hướng kép với mô tả tập tin mới để đổi tên tất cả các file flac của một thư mục theo một "filelist.txt" nhường chỗ này:
while read -u 9 filename ; do
read -u 8 newname
echo mv "$filename" "$newname"
done 9<<<"$(ls -1 *flac)" 8< filelist.txt
Mỗi tên tệp .flac trên thư mục đi qua bộ mô tả tệp 9 đến biến "tên tệp" trong khi nhập mẫu e iteration, mỗi dòng của filelist.txt đi qua bộ mô tả tập tin 8 đến biến "newname".
Có, một trong các bộ mô tả tệp mới có thể tránh được và chỉ cần sử dụng đầu vào tiêu chuẩn mặc định (xóa "-u 9" và "9"), nhưng tôi đã quen với việc không sử dụng stdin cho những người đó; theo cách đó bạn có thể bao gồm một câu lệnh đọc bên trong vòng lặp cho tương tác hoặc điều khiển và nó sẽ không được lấp đầy bởi dữ liệu được chuyển hướng.
Tiếng vọng là dành cho "chỉ thử nghiệm" và phải bị xóa sau khi phê duyệt thao tác.
Bạn có bất kỳ tiêu chí nào để ánh xạ các tệp trong thư mục tới chuỗi không? Tôi hỏi điều này bởi vì: nếu bạn sử dụng hãy nói 'ls' để lấy các tệp, bạn sẽ được sắp xếp theo thứ tự abc, nhưng cuối cùng, bạn có thể có ánh xạ khác 'filename_X => string_Y' –