Shell Geek Đổi tên nhiều tệp cùng một lúc
Giả sử bạn có một thư mục chứa 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 chứa kiểm tra với sản phẩm. (đây là một ví dụ giả định). Chúng ta có thể dễ dàng thực hiện điều này với lệnh băm cho người dùng trong bash, kết hợp với một chút lòng tốt của bash. 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 của người Viking cho hoạt động như thế này:
cho var in; làm $ var; xong
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 trình 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ậm chí còn thú vị hơn. Thay vì chỉ làm một cái gì đó giống như mv 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
Vì vậy, bây giờ, nếu chúng ta chạy lệnh này trên thư mục của chúng tôi:
cho f trong *; làm mv $ f $ f / test / prod; xong
Đối với mỗi tệp được khớp bởi *, bash sẽ thực thi 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ề shell là vô giá khi quản trị 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 hàng giờ về những gì có thể là công việc thủ công.
Và vâng, tôi nhận ra có một số công cụ có thể thực hiện việc đổi tên của nhiều tệp.