Shell Geek: Đổi tên nhiều tệp cùng một lúc

Shell Geek: Đổi tên nhiều tệp cùng một lúc
Shell Geek: Đổi tên nhiều tệp cùng một lúc

Video: Shell Geek: Đổi tên nhiều tệp cùng một lúc

Video: Shell Geek: Đổi tên nhiều tệp cùng một lúc
Video: Cách xóa các file rác trong ổ C win 7, win 8, win 10 - YouTube 2024, Tháng tư
Anonim

Giả sử bạn có một thư mục với hàng trăm tệp có tên tệp sai và bạn muốn thay thế mọi tên tệp có chứa kiểm tra với prod. (đây là một ví dụ giả tạo). Chúng ta có thể dễ dàng làm điều này với lệnh “for” trong bash, kết hợp với một chút tốt lành. Hôm nay, chúng ta sẽ tìm hiểu cách thay thế văn bản trong một biến trong vòng lặp for.

Lệnh "for" hoạt động như sau:

for var in ;do $var;done

Bạn có thể thay thế với bất kỳ mẫu đối sánh tệp nào, chẳng hạn như * hoặc *.txt và bạn có thể thay thế với bất kỳ lệnh linux nào. Lệnh sẽ được chạy theo thứ tự trên mỗi tệp được khớp với mẫu khớp tệp.

Đây là nơi xử lý biến bash làm cho nó thú vị hơn. Thay vì chỉ làm một cái gì đó như "mv $ var", chúng ta có thể thay thế văn bản trong tên tệp bằng cú pháp này:

${var/originaltext/replacetext}

Bây giờ, nếu chúng ta chạy lệnh này trên thư mục của chúng ta:

for f in *;do mv $f ${f/test/prod};done

Đối với mỗi tệp phù hợp với *, bash sẽ thực hiện một lệnh tương tự như sau:

mv test.config prod.config

Tôi đã thấy rằng kiến thức về trình bao là vô giá khi quản lý máy chủ hoặc chỉ để quản lý bộ sưu tập tệp của bạn và đã tiết kiệm cho tôi số giờ làm việc theo cách thủ công.

Và có, tôi nhận ra có một số công cụ có thể thực hiện đổi tên nhiều tệp.

Đề xuất: