Tuyệt vời mà câu hỏi này không bao giờ btained một câu trả lời lành mạnh:
shopt -s nullglob
for i in */; do
mkdir -- "${i}newdir"
done
- này là 100% an toàn liên quan đến những biểu tượng vui trong tên tập tin (số lượng, ký tự đại diện, vv).
shopt -s nullglob
sao cho glob sẽ mở rộng thành không có gì nếu không có kết quả phù hợp.
- Các
--
trong mkdir
để đánh dấu sự kết thúc tùy chọn (nếu có một thư mục với tên bắt đầu với dấu gạch ngang, không nhầm lẫn mkdir
cố gắng để giải thích nó như là một tùy chọn).
Điều này âm thầm bỏ qua các thư mục ẩn. Nếu bạn cần phải thực hiện thao tác này trên các thư mục ẩn, chỉ cần thay thế dòng shopt -s nullglob
bởi những điều sau:
shopt -s nullglob dotglob
Các dotglob
để các globs cũng xem xét ẩn các tập tin/thư mục.
Nếu bạn muốn chỉ có một lời khẩn cầu mkdir
:
shopt -s nullglob
dirs=(*/)
mkdir -- "${dirs[@]/%/newdir}"
Nguồn
2014-04-30 22:02:34
Xin vui lòng, không phân tích đầu ra của 'ls'. Cảm ơn bạn. –