hiểu một số cờ trong lệnh find trong linux


4

Tôi chỉ muốn di chuyển các tệp trong Linux và tôi đã tìm thấy câu trả lời ở đây như sau:

find . -maxdepth 1 -type f -exec mv {} destination_path \;

mà làm việc cho tôi hoàn hảo. Nhưng câu hỏi của tôi là :

  1. ý nghĩa của \;lệnh này là gì?

  2. Là dấu ngoặc nhọn {}trong lệnh này tương đương với *?

Câu trả lời:


8

Các findlệnh giả định rằng tất cả mọi thứ giữa -execlựa chọn và một ;nhân vật bao gồm các lệnh mà bạn muốn thực hiện trên mỗi kết quả tìm kiếm.

Bởi vì ;là một ký tự dành riêng trong bashshell, bạn phải thoát nó bằng cách sử dụng \, nếu không bash sẽ giải thích nó. Xem man bashđể biết chi tiết.

Dấu ngoặc nhọn {}là một giữ chỗ cho mỗi kết quả tìm kiếm tìm thấy.

Sau đây là từ trang của find:

-exec command ;
   Execute command; true if 0 status is returned.
   All following arguments to find are taken to  be arguments 
   to the command until an argument consisting of `;' is encountered.
   The string `{}' is replaced by the current file name being
   processed everywhere it occurs in the arguments to the command, not
   just in arguments where it is alone, as in some versions of find.
   Both of these constructions might need to be escaped (with a
   `\') or quoted to protect them from expansion by the shell. 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.