Nếu bạn làm việc với các tệp trên dòng lệnh trong Linux, đổi tên tệp là một trong những tác vụ thường xuyên nhất mà bạn có thể thấy mình tham gia. Chúng tôi đã thảo luận về lệnh themv cho phép bạn thực hiện việc này. Và ở đây, trong hướng dẫn này, chúng tôi sẽ thảo luận về một công cụ khác như vậy, được gọi là đổi tên.
Nhưng trước khi bắt đầu, cần đề cập rằng tất cả các ví dụ trong bài viết này đã được thử nghiệm trên máy Ubuntu 18.04 LTS.
Và đây là cách trang hướng dẫn của công cụ giải thích về nó:
Lưu ý rằng nếu bạn không cài đặt lệnh đổi tên, bạn có thể tải xuống bằng lệnh sau:
Sau đây là một số ví dụ theo kiểu Hỏi & Đáp sẽ giúp bạn hiểu rõ hơn về cách lệnh đổi tên hoạt động.
Vì vậy, nếu symlink.txt là một liên kết tượng trưng trỏ đến root.txt, thì lệnh sau sẽ đảm bảo hoạt động đổi tên xảy ra đối với root.txt:
tạo ra đầu ra sau:
nhưng không thực sự đổi tên new.txt thành test.txt.
Ví dụ, lệnh sau:
tạo ra kết quả sau:
Nhưng khi lệnh -f được sử dụng:
Hoạt động hoàn thành suôn sẻ và test.txt đã bị ghi đè.
Nhưng trước khi bắt đầu, cần đề cập rằng tất cả các ví dụ trong bài viết này đã được thử nghiệm trên máy Ubuntu 18.04 LTS.
Lệnh đổi tên Linux
Như tên gọi của nó, lệnh đổi tên trong Linux cho phép bạn đổi tên tệp. Sau đây là cú pháp của nó:
Mã:
rename [options] expression replacement file...
Mã:
rename sẽ đổi tên các tệp đã chỉ định bằng cách thay thế lần xuất hiện đầu tiên của expression trong tên của chúng bằng lệnh thay thế.
Mã:
sudo apt install rename
Câu hỏi 1. Làm thế nào để sử dụng lệnh đổi tên?
Tôi phải nói rằng cách sử dụng cơ bản không hoàn toàn dễ hiểu, nhưng không khó để hiểu. Giả sử bạn có một tệp có tên là 'test.txt' và bạn muốn đổi tên tệp đó thành 'new.txt'. Sau đây là cách bạn sử dụng lệnh đổi tên để thực hiện việc này.
Mã:
rename 's/test/new/' test.txt
Câu hỏi 2. Lệnh đổi tên xử lý các liên kết tượng trưng như thế nào?
Theo mặc định, lệnh đổi tên chỉ đổi tên tệp được truyền làm đầu vào, ngay cả khi đó là liên kết tượng trưng. Tuy nhiên, nếu bạn muốn công cụ không đổi tên các liên kết tượng trưng mà thay vào đó hành động trên các mục tiêu của chúng, hãy sử dụng tùy chọn dòng lệnh -s.Vì vậy, nếu symlink.txt là một liên kết tượng trưng trỏ đến root.txt, thì lệnh sau sẽ đảm bảo hoạt động đổi tên xảy ra đối với root.txt:
Mã:
rename -s 's/root/new/' symlink.txt
Câu hỏi 3. Làm thế nào để chạy thử với lệnh đổi tên?
Giả sử bạn chỉ muốn xem thay đổi cuối cùng sẽ xảy ra với lệnh đổi tên, mà không thực sự thực hiện lệnh đó, thì hãy sử dụng tùy chọn dòng lệnh -n. Ví dụ, lệnh sau:
Mã:
rename -n 's/new/test/' new.txt
Mã:
rename(new.txt, test.txt)
Câu hỏi 4. Lệnh đổi tên xử lý việc ghi đè tệp như thế nào?
Theo mặc định, lệnh đổi tên không thực hiện thao tác nếu liên quan đến việc ghi đè tệp hiện có. Tuy nhiên, bạn có thể buộc công cụ ghi đè bằng tùy chọn dòng lệnh -f.Ví dụ, lệnh sau:
Mã:
rename 's/new/test/' new.txt
Mã:
new.txt not changed: test.txt already exists
Mã:
rename -f 's/new/test/' new.txt