Thủ Thuật Công Nghệ

Hướng dẫn sử dụng lệnh đổi tên trên Linux từ một vài bước đơn giản

Bạn đã bao giờ thử sử dụng lệnh đổi tên trên chưa Linux? Bạn có muốn nắm bắt được sức mạnh đổi tên tệp của thế giới Linux và cung cấp mv—Và bản thân — phần còn lại. Đổi tên nhanh chóng, linh hoạt và dễ dàng hơn. Đây là hướng dẫn chi tiết về sức mạnh của lệnh này.

Chuyện gì đang xảy ra với mv?

Không có gì sai với mv . Tuy nhiên, lệnh hoạt động tốt. Ngoài ra, bạn có thể tìm thấy nó trên tất cả các bản phân phối Linux, trong macOS và trong hệ điều hành giống Unix khác. Tuy nhiên, nó luôn có sẵn. Nhưng chắc chắn, bạn không muốn một cái xẻng mà cần một chiếc máy ủi.

Lệnh mv có mục đích trong cuộc sống và đó là di chuyển tệp. Đó là một tác dụng phụ an toàn mà nó có thể được sử dụng để di chuyển tệp cũ hơn vào trong tệp mới, với một tên mới. Tác dụng là đổi tên tệp, vì vậy bạn sẽ có được những gì bạn muốn. Nhưng mv không phải là một công cụ đổi tên tệp tùy chỉnh.

Cách đổi tên một tệp đơn bằng mv

Nếu bạn muốn sử dụng mv để đổi tên tệp rồi nhập mv, khoảng trắng, tên tệp, khoảng trắng và tên mới mà bạn muốn tệp có. Sau đó nhấn Enter.

Bạn cũng có thể dùng ls để kiểm tra xem tệp có được đổi tên hay không

mv oldfile.txt newfile.txt
ls *.txt

Cách đổi tên nhiều tệp bằng mv

Mọi thứ trở nên phức tạp sau khi đổi tên nhiều tệp. mv không có khả năng đối phó với việc đổi tên các tệp khác nhau. Bạn phải sử dụng một số thủ thuật Bash hữu ích. Thật tốt nếu bạn biết một số dòng lệnh cấp trung bình, nhưng khó đổi tên các tệp khác nhau với mv chỉ là sự dễ sử dụng mv để đổi tên một tệp duy nhất.

Mọi thứ leo thang ngay lập tức.

Giả sử đây là một thư mục có rất nhiều tệp trong đó, thuộc các loại khác nhau. Một số tệp có “.ăn xin” gia hạn. Chúng tôi muốn đổi tên các tệp đó tại dòng lệnh để chúng có “.Prg” gia hạn.

Hãy cùng xem qua các tập tin.

ls *.prog -l

Đây là một phương pháp để làm điều đó mà không thể sử dụng đến việc viết tệp script Bash thực tế.

for f in *.prog; do mv -- "$f" "${f%.prog}.prg"

Nó đã hoạt động hay không? Hãy kiểm tra các tệp và sau đó tiến hành thêm.

ls *.pr*

Vì vậy, nó hoạt động tốt. Tất cả họ là “.Prg” các tập tin bây giờ và không có “.ăn xin” các tệp trong thư mục.

Chuyện gì đã xảy ra?

Lệnh dài đã thực sự làm gì? Hãy cùng kiểm tra nào.

for f in *.prog; do mv -- "$f" "${f%.prog}.prg"

Phần đầu tiên bắt đầu một vòng lặp sẽ xử lý mọi “.ăn xin” đến lượt tệp trong thư mục.

Một phần khác cho biết quá trình xử lý sẽ làm. Nó sử dụng mv để chuyển từng tệp sang tệp mới. Tên tệp mới sẽ khá giống với tên của tệp gốc ngoại trừ phần “.prog”. Ngoài ra, phần mở rộng của “.prg” sẽ được sử dụng.

Đây là một cách dễ dàng

Chắc chắn nhất. Đây là đổi tên.

đổi tên tệp trên Linux

Nó không phải là một phần của bản phân phối Linux tiêu chuẩn, vì vậy bạn muốn cài đặt nó. Ngoài ra, nó có một tên khác trong các dòng Linux khác nhau, nhưng chúng đều hoạt động theo cách giống nhau. Bạn chỉ cần thay thế tên lệnh chính xác theo sở thích của Linux mà bạn đang sử dụng.

Trong các bản phân phối Ubuntu hoặc bắt nguồn từ Debian, bạn chỉ cần cài đặt rename như thế này:

sudo apt-get install rename

Trong các bản phân phối có nguồn gốc từ RedHat hoặc Fedora, bạn chỉ cần cài đặt tên trước như thế này. Hãy nhớ rằng chữ “p” đầu tiên là viết tắt của Perl.

sudo dnf install prename

Để cài đặt nó trong Manjaro Linux, hãy sử dụng lệnh sau. Hãy nhớ rằng lệnh đổi tên được gọi là perl-rename.

sudo pacman -Syu perl-rename

Sử dụng lệnh đổi tên -> Hãy thử một lần nữa

Ở đây chúng tôi sẽ sử dụng rename. Chúng tôi đang làm điều này để chúng tôi có một tập hợp các tệp “.prog”.

ls *.prog

Hãy sử dụng lệnh dưới đây để đổi tên chúng. Chúng tôi cũng sẽ kiểm tra với ls cho dù nó hoạt động hay không. Nếu bạn muốn thay thế rename với tên lệnh chính xác cho Linux nếu không thể sử dụng Ubuntu hoặc Linux có nguồn gốc từ Debian.

rename 's/.prog/.prg/' *.prog
ls *.pr*

Nó hoạt động tốt, bây giờ tất cả đều là tệp “.prg” không bao gồm “.ăn xin” các tập tin còn lại trong thư mục.

Chuyện gì đã xảy ra ở đây?

Hãy thảo luận về nó trong ba phần.

bên trong đầu tiên một phần, bạn sẽ xem tên lệnh, rename (hoặc prename hoặc perl-rename , đối với các bản phân phối khác).

Thứ ba Cuối cùng một phần là *.prog, giải thích rename để hoạt động trên tất cả các tệp “.prog”.

Các thứ hai phần giải thích công việc chúng tôi muốn thực hiện trên mỗi tên tệp. Các s có nghĩa là thay thế. Kỳ 1 (.prog) là gì rename sẽ tìm kiếm trong mỗi tên tệp và thuật ngữ thứ 2 (.prg) là những gì nó sẽ được thay thế bằng.

Các lệnh phần giữa hoặc biểu thức trung tâm là ‘biểu thức chính quy’ Perl và nó là thứ cung cấp rename chỉ huy độ tin cậy của nó.

Sửa đổi các phần khác của tên tệp

Chúng tôi đã sửa đổi phần mở rộng tên tệp cho đến nay, hãy thay đổi các phần khác của tên tệp.

Trong thư mục, có rất nhiều tệp mã nguồn C. Tất cả các tên tệp đều có tiền tố là “Slang_”. Chúng tôi cũng có thể kiểm tra điều này với ls.

ls sl*.c

Ở đây chúng tôi thay thế tất cả các lần xuất hiện của “slang_” bằng “sl_”. Định dạng lệnh khá quen thuộc với chúng ta. Chúng tôi chỉ sửa đổi cụm từ tìm kiếm, cụm từ thay thế và loại tệp.

rename 's/slang_/sl_' *.c

Ở đây chúng tôi đang tìm kiếm các tệp “.c” và tìm kiếm “slang_”. Bất cứ khi nào bạn tìm thấy “slang_” trong tên tệp, nó sẽ được thay thế bằng “sl_”.

Bạn cũng có thể kiểm tra kết quả lệnh sau khi lặp lại lệnh ls từ phía trên sử dụng các thông số tương tự:

ls sl*.c

Loại bỏ một phần của tên tệp

Chúng tôi cũng có thể xóa một phần của tên tệp sau khi thay thế cụm từ tìm kiếm mà không có gì.

ls *.c

rename 's/sl_//' *.c

ls *.c

Chúng tôi cũng có thể xem từ ls ra lệnh rằng của chúng tôi “.C” tất cả các tệp đều được thêm vào trước bằng “sl_”. Hãy để điều đó hoàn toàn.

Các đổi tên theo cùng một định dạng như đã đề cập ở trên. Chúng tôi sẽ tìm kiếm các tệp “.c”. Cụm từ tìm kiếm là “sl_”, nhưng không có cụm từ thay thế. Hai dấu gạch chéo ngược ‘//’ không có bất kỳ thứ gì ở giữa chúng có nghĩa là một chuỗi rỗng.

rename có thể xử lý lần lượt từng tệp “.c”. Ngoài ra, nó tìm kiếm “sl_” trong tên tệp. Nếu bạn tìm thấy nó, bạn có thể được thay thế bằng không. Ngoài ra, cụm từ tìm kiếm sẽ bị xóa.

Một công dụng khác của ls lệnh xác nhận rằng tiền tố “sl_” đã bị xóa khỏi mọi tệp “.c”.

Giới hạn sửa đổi đối với các phần cụ thể của tên tệp

Hãy đến để sử dụng ls để xem các tệp có chuỗi “param” trong tên tệp của chúng. Sau đó, chúng tôi sẽ sử dụng đổi tên chuỗi thông qua chuỗi “tham số”. Ngoài ra, chúng tôi sử dụng ls để xem hiệu ứng đổi tên đã có trên các tệp đó.

ls *param*
rename 's/param/parameter' *.c
ls *param*

Sau đó, bạn sẽ thấy bốn tệp có “Tham số” trong tên tệp của họ. param.c, param_one.c và param_two.c đều có “Tham số” tại bắt đầu tên của họ. third_param.c có “Tham số” tại Cuối cùng tên của nó, ngay trước phần mở rộng.

Bạn có thể tìm kiếm đổi tên cho “param” ở mọi nơi trong tên tệp. Sau đó, bạn có thể thay thế nó bằng “tham số” trong mọi trường hợp.

Một cách sử dụng khác của ls hiển thị cho chúng ta biết chính xác những gì đã xảy ra. Liệu “Tham số” ở đầu hoặc ở cuối tên tệp. Bạn cũng có thể thay thế nó bằng một “tham số.”

Chúng ta có thể sử dụng siêu ký tự của Perl để làm sạch hành vi của biểu thức trung tâm. Siêu ký tự là các dấu hiệu đại diện cho trình tự hoặc vị trí của các ký tự. Ví dụ, ^ có nghĩa là “bắt đầu của một chuỗi”, (.) bất kỳ ký tự đơn nào (ngoài ký tự dòng mới), $ có nghĩa là “kết thúc của một chuỗi”.

Ngoài ra, chúng tôi sử dụng phần đầu của siêu ký tự chuỗi ( ^ ) để giới hạn tìm kiếm của chúng tôi ở đầu tên tệp.

ls *param*.c
rename 's/^parameter/value/' *.c
ls *param*.c
ls value*.c

Các tệp chúng tôi đã đổi tên được liệt kê trước đây. Ngoài ra, chúng ta có thể xem chuỗi “tham số” nằm ở đầu của 3 tên tệp và nó nằm ở cuối một trong các tên tệp.

Của chúng ta đổi tên sử dụng đầu của siêu ký tự dòng (^) trước cụm từ tìm kiếm “tham số”. Nó giải thích rằng chỉ cần xem xét cụm từ tìm kiếm được tìm thấy nếu nó nằm ở đầu tên tệp. Chuỗi tìm kiếm “tham số” sẽ bị tránh nếu nó nằm ở bất kỳ vị trí nào khác trong tên tệp.

Nhìn với ls, sau đó chúng ta có thể thấy rằng tên tệp có “tham số” tại Cuối cùng của tên tệp không được thay đổi. Nhưng ba tên tệp có “tham số” ở bắt đầu tên của họ có chuỗi tìm kiếm được thay thế bằng cụm từ thay thế “giá trị”.

Các đổi tên sức mạnh nằm trong sức mạnh của Perl.

Tìm kiếm với các nhóm

Đây là trường hợp mà bạn có thể có các tệp có cùng chuỗi trong tên của chúng. Chúng không giống nhau hoàn toàn các chuỗi giống nhau, vì vậy bạn chỉ cần tìm và thay thế không thể hoạt động ở đây.

Trong ví dụ này, chúng tôi sử dụng ls để xem chúng tôi có những tệp nào bắt đầu bằng “str”. Ngoài ra, có hai trong số chúng, string.c và Strale.c. Chúng ta cũng có thể đổi tên cả hai chuỗi sau khi sử dụng một phương thức được gọi là nhóm.

Biểu thức giữa của đổi tên sẽ tìm kiếm các chuỗi trong tên tệp có chuỗi ký tự “Stri” hoặc “Đi lạc”. Ở đây, các chuỗi này được theo sau bởi “ng”. Ngoài ra, cụm từ tìm kiếm của chúng tôi sẽ tìm kiếm “chuỗi” “Bóp cổ”. Thuật ngữ thay thế là “Nổ”.

ls str*.c
rename 's/(stri|stra)ng/bang/' *.c
ls ban*.c

Sau khi sử dụng ls một lần khác xác nhận rằng string.c đã trở thành bang.c và Strale.c bây giờ là bangle.c.

Sử dụng đổi tên Command With Translations

Các đổi tên thực hiện tất cả các hành động trên tên tệp được gọi là bản dịch. Đây là một ví dụ về bản dịch buộc một tập hợp các tên tệp thành chữ hoa.

bên trong đổi tên đưa ra bên dưới thông báo rằng chúng tôi không sử dụng s/ để bắt đầu biểu thức giữa, chúng tôi đang sử dụng y/. Nó giải thích rằng lệnh không thể thực hiện thay thế; chúng tôi đang thực hiện một bản dịch.

Thời hạn a-z là một biểu thức Perl. Có nghĩa là tất cả các ký tự viết thường trong dãy từ a đến z. Nhưng, thuật ngữ A-Z đại diện cho tất cả các chữ cái viết hoa trong dãy từ A đến Z.

Biểu thức ở giữa trong lệnh này có thể được diễn giải là “nếu tìm thấy bất kỳ chữ cái thường nào từ a đến z trong tên tệp. Nó thay thế chúng bằng cách sử dụng các ký tự tương ứng theo thứ tự các ký tự viết hoa từ A đến Z. ”

Nếu bạn muốn buộc tên tệp của tất cả các tệp “.prg” thành chữ hoa, chỉ cần sử dụng lệnh sau:

đổi tên ‘y / az / AZ /’ * .prg

ls *.PRG

Lệnh ls cho chúng tôi thấy rằng tất cả “.Prg” các tệp tiện ích mở rộng bây giờ được viết hoa. Ngoài ra, để hoàn toàn chính xác, chúng không “.Prg” các tập tin nữa. Chà, chúng là các tệp “.PRG”. Đảm bảo rằng Linux có phân biệt chữ hoa chữ thường.

Chúng ta cũng có thể đảo ngược lệnh cuối cùng đó sau khi quay trở lại vị trí của a-z và các số hạng AZ trong biểu thức ở giữa.

đổi tên ‘y / AZ / az /’ * .PRG

ls * .prg

Bạn không thể học Perl trong năm phút

Nắm bắt được kỹ năng với Perl là thời gian dành cho bạn. Nhưng để bắt đầu sử dụng khả năng tiết kiệm thời gian của đổi tên, bạn không cần phải có nhiều kiến ​​thức về Perl để đạt được lợi thế lớn về quyền lực.

Sự kết luận:

Đây là tất cả về ‘Sử dụng đổi tên Command trên Linux’. Quan điểm của bạn về nó là gì? Nếu bạn muốn chia sẻ bất kỳ phương pháp hoặc thủ thuật nào khác liên quan đến bài viết, hãy cho chúng tôi biết bên dưới. Nếu có thêm thắc mắc và câu hỏi, hãy cho chúng tôi biết trong phần bình luận bên dưới!

Xem thêm:

  • Cách thêm người dùng vào nhóm trên Linux & Hướng dẫn

Related Articles

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Back to top button