Lệnh mren trong Linux

Giới thiệu

Trong lab này, bạn sẽ học cách sử dụng lệnh mren, một công cụ mạnh mẽ để đổi tên nhiều file trong Linux. Lệnh mren cho phép bạn đổi tên file dựa trên các pattern, biến nó thành một công cụ hữu ích cho các thao tác đổi tên file hàng loạt. Bạn sẽ khám phá cách sử dụng cơ bản của mren và học cách tận dụng regular expressions cho các tác vụ đổi tên file nâng cao hơn.

Lab này bao gồm các chủ đề sau: Giới thiệu về lệnh mren, Đổi tên nhiều file với mren và Sử dụng mren nâng cao với Regular Expressions. Đến cuối lab này, bạn sẽ có thể quản lý và sắp xếp file của mình một cách hiệu quả bằng cách sử dụng lệnh mren.

Giới thiệu về lệnh mren

Trong bước này, bạn sẽ tìm hiểu về lệnh mren, một công cụ mạnh mẽ để đổi tên nhiều file trong Linux. Lệnh mren cho phép bạn đổi tên file dựa trên các pattern, biến nó thành một công cụ hữu ích cho các thao tác đổi tên file hàng loạt.

Đầu tiên, hãy tạo một số file mẫu để làm việc:

cd ~/project
touch file1.txt file2.txt file3.txt file4.txt file5.txt

Ví dụ đầu ra:

labex@ubuntu:~/project$ ls
file1.txt  file2.txt  file3.txt  file4.txt  file5.txt

Bây giờ, hãy sử dụng lệnh mren để đổi tên các file này. Cú pháp cơ bản của mren là:

mren 'pattern' 'replacement' files...

Ở đây, pattern là search pattern để match các file và replacement là định dạng tên mới.

Ví dụ: để đổi tên tất cả các file có tiền tố "file" thành "myfile":

mren 'file(\d+).txt' 'myfile\1.txt' *.txt

Ví dụ đầu ra:

labex@ubuntu:~/project$ ls
myfile1.txt  myfile2.txt  myfile3.txt  myfile4.txt  myfile5.txt

Như bạn có thể thấy, lệnh mren đã đổi tên tất cả các file có tiền tố "file" thành "myfile" với số tương ứng.

Lệnh mren hỗ trợ regular expressions, cho phép các thao tác đổi tên file nâng cao hơn. Chúng ta sẽ khám phá điều này trong bước tiếp theo.

Đổi tên nhiều file với mren

Trong bước này, chúng ta sẽ khám phá các trường hợp sử dụng nâng cao hơn của lệnh mren để đổi tên nhiều file.

Hãy bắt đầu bằng cách tạo một số file mẫu với các quy ước đặt tên khác nhau:

cd ~/project
touch file001.txt file002.txt file003.txt
touch image01.jpg image02.jpg image03.jpg

Ví dụ đầu ra:

labex@ubuntu:~/project$ ls
file001.txt  file002.txt  file003.txt  image01.jpg  image02.jpg  image03.jpg

Bây giờ, giả sử chúng ta muốn đổi tên tất cả các file "file" để có định dạng nhất quán, như "myfile_001.txt", "myfile_002.txt", v.v. Chúng ta có thể sử dụng lệnh mren với regular expressions để đạt được điều này:

mren 'file(\d+).txt' 'myfile_\1.txt' *.txt

Ví dụ đầu ra:

labex@ubuntu:~/project$ ls
myfile_001.txt  myfile_002.txt  myfile_003.txt  image01.jpg  image02.jpg  image03.jpg

Tương tự, hãy đổi tên tất cả các file hình ảnh để có định dạng nhất quán, như "image_01.jpg", "image_02.jpg", v.v.:

mren 'image(\d+).jpg' 'image_\1.jpg' *.jpg

Ví dụ đầu ra:

labex@ubuntu:~/project$ ls
myfile_001.txt  myfile_002.txt  myfile_003.txt  image_01.jpg  image_02.jpg  image_03.jpg

Lệnh mren cho phép bạn sử dụng capture groups trong regular expression pattern để tham chiếu các phần của tên file trong replacement. Điều này biến nó thành một công cụ mạnh mẽ cho các thao tác đổi tên file phức tạp.

Sử dụng mren nâng cao với Regular Expressions

Trong bước cuối cùng này, chúng ta sẽ khám phá một số trường hợp sử dụng nâng cao hơn của lệnh mren, tận dụng sức mạnh của regular expressions.

Hãy bắt đầu bằng cách tạo một tập hợp các file có cấu trúc tên phức tạp hơn:

cd ~/project
touch report_2023-01-01.txt report_2023-01-02.txt report_2023-01-03.txt
touch report_2023-02-01.txt report_2023-02-02.txt report_2023-02-03.txt
touch report_2023-03-01.txt report_2023-03-02.txt report_2023-03-03.txt

Ví dụ đầu ra:

labex@ubuntu:~/project$ ls
report_2023-01-01.txt  report_2023-02-01.txt  report_2023-03-01.txt
report_2023-01-02.txt  report_2023-02-02.txt  report_2023-03-02.txt
report_2023-01-03.txt  report_2023-02-03.txt  report_2023-03-03.txt

Bây giờ, giả sử chúng ta muốn đổi tên các file này để có định dạng nhất quán hơn, như "report_2023_01_01.txt", "report_2023_02_01.txt", v.v. Chúng ta có thể sử dụng lệnh mren với một regular expression pattern phức tạp hơn:

mren 'report_(\d{4})-(\d{2})-(\d{2}).txt' 'report_\1_\2_\3.txt' *.txt

Ví dụ đầu ra:

labex@ubuntu:~/project$ ls
report_2023_01_01.txt  report_2023_02_01.txt  report_2023_03_01.txt
report_2023_01_02.txt  report_2023_02_02.txt  report_2023_03_02.txt
report_2023_01_03.txt  report_2023_02_03.txt  report_2023_03_03.txt

Trong ví dụ này, regular expression pattern 'report_(\d{4})-(\d{2})-(\d{2}).txt' capture các thành phần năm, tháng và ngày của tên file, và chuỗi replacement 'report_\1_\2_\3.txt' sử dụng các capture groups này để xây dựng định dạng tên file mới.

Lệnh mren là một công cụ mạnh mẽ có thể xử lý nhiều tác vụ đổi tên file, từ đổi tên hàng loạt đơn giản đến các thao tác phức tạp bằng regular expressions. Bằng cách nắm vững lệnh mren, bạn có thể hợp lý hóa quy trình quản lý file của mình và tiết kiệm thời gian cho các tác vụ lặp đi lặp lại.

Tóm tắt

Trong lab này, bạn đã tìm hiểu về lệnh mren, một công cụ mạnh mẽ để đổi tên nhiều file trong Linux. Bạn bắt đầu bằng cách tạo các file mẫu và sau đó sử dụng mren để đổi tên chúng dựa trên các pattern, bao gồm cả việc sử dụng regular expressions cho các thao tác đổi tên file nâng cao hơn. Lệnh mren cho phép bạn đổi tên hàng loạt file một cách hiệu quả, khiến nó trở thành một công cụ có giá trị cho các tác vụ quản lý file.

Lab bao gồm cú pháp cơ bản của lệnh mren, trình bày cách đổi tên file với một tiền tố hoặc pattern cụ thể. Ngoài ra, bạn đã khám phá việc sử dụng regular expressions với mren, cho phép các kịch bản đổi tên file phức tạp hơn, chẳng hạn như thêm định dạng nhất quán vào tên file.

400+ câu lệnh phổ biến trong Linux