Lệnh find cho đầu ra này:
[root @ localhost /] # tìm var / log / -iname anaconda. * var / log / anaconda.log var / log / anaconda.xlog var / log / anaconda.yum.log var / log / anaconda.syslog var / log / anaconda.program.log var / log / anaconda.st Storage.log
Sau khi kết hợp với tar, nó hiển thị đầu ra này:
[root @ localhost /] # find var / log / -iname anaconda. * -exec tar -cvf file.tar {} \; var / log / anaconda.log var / log / anaconda.xlog var / log / anaconda.yum.log var / log / anaconda.syslog var / log / anaconda.program.log var / log / anaconda.st Storage.log
Nhưng trong khi liệt kê tệp tar, nó chỉ hiển thị một tệp duy nhất
[root @ localhost /] # tar -tvf file.tar -rw ------- root / root 208454 2012 / 02-27 12:01 var / log / anaconda.st Storage.log
Tôi đang làm gì sai ở đây?
Với xargs tôi nhận được đầu ra này:
[root @ localhost /] # tìm var / log / -iname anaconda. * | xargs tar -cvf file1.tar
Câu hỏi thứ hai
Trong khi gõ / trước var, có nghĩa là find /var/log
tại sao nó lại đưa ra mesaage tar này: Loại bỏ `/ 'hàng đầu khỏi tên thành viên
[root @ localhost /] # find / var / log / -iname anaconda. * -exec tar -cvf file.tar {} \; tar: Loại bỏ `/ 'hàng đầu khỏi tên thành viên /var/log/anaconda.log tar: Loại bỏ `/ 'hàng đầu khỏi tên thành viên /var/log/anaconda.xlog tar: Loại bỏ `/ 'hàng đầu khỏi tên thành viên /var/log/anaconda.yum.log tar: Loại bỏ `/ 'hàng đầu khỏi tên thành viên /var/log/anaconda.syslog tar: Loại bỏ `/ 'hàng đầu khỏi tên thành viên /var/log/anaconda.program.log tar: Loại bỏ `/ 'hàng đầu khỏi tên thành viên /var/log/anaconda.st Storage.log
Trong một hình thức đơn giản, sự khác biệt giữa trong hai sau đây là gì?
find var/log
và find /var/log
{} +
thay vì {} \;
nó sẽ nhóm kết quả tìm kiếm vào một đối số
find
lệnh, bạn nên trích dẫn cụm từ tìm kiếm. Nó hoạt động mà không đôi khi nhưng không phải luôn luôn.