Android

Cách đổi tên tập tin và thư mục trong linux

Lập trình C trên Linux- Thư viện liên kết động và Thư viện liên kết tĩnh

Lập trình C trên Linux- Thư viện liên kết động và Thư viện liên kết tĩnh

Mục lục:

Anonim

Đổi tên tệp và thư mục là một trong những nhiệm vụ cơ bản nhất bạn thường cần thực hiện trên hệ thống Linux.

Đổi tên một tệp là dễ dàng, nhưng đổi tên nhiều tệp cùng một lúc có thể là một thách thức, đặc biệt đối với người dùng mới sử dụng Linux. Bạn có thể đổi tên tệp bằng trình quản lý tệp GUI hoặc thông qua thiết bị đầu cuối dòng lệnh.

Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách sử dụng các lệnh mv rename để đổi tên các tệp và thư mục.

Đổi tên tập tin bằng lệnh mv

Lệnh mv (viết tắt từ di chuyển) được sử dụng để đổi tên hoặc di chuyển các tệp từ vị trí này sang vị trí khác. Cú pháp của lệnh mv như sau:

mv source destination

source có thể là một hoặc nhiều tệp hoặc thư mục và destination có thể là một tệp hoặc thư mục.

  • Nếu bạn chỉ định nhiều tệp làm source , destination phải là một thư mục. Trong trường hợp này, các tệp source được chuyển đến thư mục đích. Nếu bạn chỉ định một tệp là source destination đích là một thư mục hiện có thì tệp sẽ được chuyển đến thư mục đã chỉ định. Để đổi tên tệp bạn cần chỉ định một tập tin duy nhất là source và tập tin duy nhất là mục tiêu đích.

Ví dụ: để đổi tên tệp file1.txt thành file2.txt bạn sẽ chạy:

mv file1.txt file2.txt

Đổi tên nhiều tệp bằng lệnh mv

Lệnh mv chỉ có thể đổi tên một tệp tại một thời điểm nhưng nó có thể được sử dụng cùng với các lệnh khác như find hoặc bên trong bash cho hoặc trong khi các vòng lặp để đổi tên nhiều tệp.

Ví dụ sau đây cho thấy cách sử dụng vòng lặp Bash for để đổi tên tất cả các tệp .html trong thư mục hiện tại bằng cách thay đổi phần mở rộng .html thành .php .

for f in *.html; do mv -- "$f" "${f%.html}.php" done

Hãy phân tích từng dòng mã:

  • Dòng đầu tiên tạo một vòng lặp for và lặp qua danh sách tất cả các tệp được chỉnh sửa bằng .html . Dòng thứ hai áp dụng cho từng mục của danh sách và di chuyển tệp sang một tệp mới thay thế .html bằng .php . Phần ${file%.html} đang sử dụng mở rộng tham số shell để xóa phần .html khỏi filename.done cho biết kết thúc của phân đoạn vòng lặp.

Chúng ta cũng có thể sử dụng lệnh mv kết hợp với find để đạt được như trên.

find. -depth -name "*.html" -exec sh -c 'f="{}"; mv -- "$f" "${f%.html}.php"' ;

Lệnh find đang chuyển tất cả các tệp kết thúc bằng .html trong thư mục hiện tại sang lệnh mv từng cái một bằng cách sử dụng khóa chuyển đổi -exec . Chuỗi {} là tên của tệp hiện đang được xử lý.

Như bạn có thể thấy từ các ví dụ trên, đổi tên nhiều tệp bằng lệnh mv không phải là một nhiệm vụ dễ dàng vì nó đòi hỏi kiến ​​thức tốt về kịch bản Bash.

Đổi tên tập tin bằng đổi tên Lệnh

Lệnh rename được sử dụng để đổi tên nhiều tệp. Lệnh này tiên tiến hơn mv vì nó đòi hỏi một số kiến ​​thức cơ bản về biểu thức chính quy.

Có hai phiên bản của lệnh rename với cú pháp khác nhau. Trong hướng dẫn này, chúng tôi sẽ sử dụng phiên bản perl của lệnh rename . Nếu bạn chưa cài đặt phiên bản này trên hệ thống của mình, bạn có thể dễ dàng cài đặt phiên bản đó bằng trình quản lý gói phân phối.

  • Cài đặt đổi tên trên Ubuntu và Debian

    sudo apt install rename

    Cài đặt đổi tên trên CentOS và Fedora

    sudo yum install prename

    Cài đặt đổi tên trên Arch Linux

    yay perl-rename ## or yaourt -S perl-rename

Cú pháp của lệnh rename như sau:

rename perlexpr files

Lệnh rename sẽ đổi tên tất cả files theo biểu thức chính quy perlexpr chỉ định. Bạn có thể về perl biểu thức chính quy ở đây.

Ví dụ: lệnh sau sẽ thay đổi tất cả các tệp có phần mở rộng .html thành .php :

rename 's/.html/.php/' *.html

Bạn có thể sử dụng đối số -n để in tên của các tệp sẽ được đổi tên mà không cần đổi tên chúng.

rename -n 's/.html/.php/' *.html

Đầu ra sẽ trông giống như thế này:

rename(file-90.html, file-90.php) rename(file-91.html, file-91.php) rename(file-92.html, file-92.php) rename(file-93.html, file-93.php) rename(file-94.html, file-94.php)

Theo mặc định, lệnh đổi tên sẽ không ghi đè lên các tệp hiện có. Vượt qua đối số -f để cho phép các tệp hiện có bị ghi đè.

rename -f 's/.html/.php/' *.html

Dưới đây là một vài ví dụ phổ biến hơn về cách sử dụng lệnh đổi tên:

  • Thay thế khoảng trắng trong tên tệp bằng dấu gạch dưới

    rename 'y/ /_/' *

    Chuyển đổi tên tệp thành chữ thường

    rename 'y/AZ/az/' *

    Chuyển đổi tên tệp thành chữ hoa

    rename 'y/az/AZ/' *

Phần kết luận

Bây giờ bạn nên hiểu rõ về cách sử dụng các lệnh mv rename để đổi tên tệp. Tất nhiên, có các lệnh khác để đổi tên các tệp trong Linux, chẳng hạn như mmv . Người dùng Linux mới bị đe dọa bởi dòng lệnh có thể sử dụng các công cụ đổi tên hàng loạt GUI như Métamorphose.

đổi tên thiết bị đầu cuối mv