Một lớp lót có thể dễ dàng gõ thẳng từ thiết bị đầu cuối:
for f in *.md; do mv "$f" "test - $f"; done
Hoặc viết lại trên các dòng riêng biệt thay vì sử dụng dấu chấm phẩy:
for f in *.md
do
mv "$f" "test - $f"
done
Triển lãm
Cú pháp của for
(trong sh
):
for NAME [in WORDS ... ] ; do COMMANDS; done
Ở đây, chúng tôi NAME
là f
và WORDS
tất cả các tệp trong thư mục hiện tại phù hợp *.md
. Vì vậy, biến $f
sẽ được thay thế với mỗi tệp phù hợp *.md
.
Vì vậy a.md
:
mv "$f" "test - $f"
trở thành
mv "a.md" "test - a.md"
Các trích dẫn rất quan trọng vì mỗi tên tệp $f
có thể chứa khoảng trắng. Nếu không mv
sẽ nghĩ mỗi từ là một tập tin riêng biệt. Ví dụ: nếu không có dấu ngoặc kép và có một tệp được gọi Foo Bar.md
, nó sẽ dịch là:
mv Foo Bar.md test - Foo Bar.md
mà sẽ không làm việc như ý định. Nhưng bằng cách gói $f
trong dấu ngoặc kép, nó có ý nghĩa:
mv "Foo Bar.md" "test - Foo Bar.md"
Lưu ý cú pháp của for
, bạn cũng có thể đổi tên một tập hợp con của tất cả các *.md
tệp bằng cách đặt tên rõ ràng cho từng tệp:
for f in a.md b.md d.md; do mv "$f" "Test - $f"; done
Hoặc sử dụng mở rộng vỏ:
for f in {a,b,d}.md; do mv "$f" "Test - $f"; done