Điểm:0

Tập lệnh bash để đổi tên tệp từ các thư mục khác nhau cùng một lúc

lá cờ us

Nếu tôi có một thư mục có tên /tất cả hình ảnh, và bên trong thư mục này có rất nhiều thư mục, tất cả các thư mục có tên là món ăn_num như hình bên dưới. và bên trong mỗi thư mục món ăn, có một hình ảnh được đặt tên rgb.png. Làm cách nào tôi có thể đổi tên tất cả các tệp hình ảnh thành tên của thư mục của nó.

Trước

|
âââ món ăn_1
â âââ rgb.png
âââ món ăn_2
â âââ rgb.png
âââ món_3
â âââ rgb.png
âââ món ăn_4
â âââ rgb.png
âââ món ăn_5
    âââ rgb.png

Sau đó

|
âââ món ăn_1
â âââ món ăn_1.png
âââ món ăn_2
â âââ món ăn_2.png
âââ món_3
â âââ món_3.png
âââ món ăn_4
â âââ món ăn_4.png
âââ món ăn_5
    âââ món ăn_5.png
Điểm:3
lá cờ hr

Một vòng lặp shell đơn giản là đủ:

cho d trong món_*; làm 
  echo mv "$d/rgb.png" "$d/$d.png"
xong

hoặc (nếu bạn cần chạy nó từ đâu đó ngoài thư mục chứa)

cho d trong đường dẫn/đến/dish_*; làm 
  f="${d##*/}.png"
  echo mv "$d/rgb.png" "$d/$f"
xong

Gỡ bỏ tiếng vang một khi bạn hài lòng rằng nó sẽ làm điều đúng đắn.


Nếu bạn muốn trở nên lạ mắt, bạn có thể làm điều gì đó như thế này với GNU song song, tương đông:

song song echo mv {}/rgb.png {}/{/.}.png ::: đường dẫn/đến/dish_*

hoặc (nếu danh sách đối số quá dài)

printf '%s\0' đường dẫn/đến/dish_* | song song --null echo mv {}/rgb.png {}/{/.}.png

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.