Nếu tôi có một thư mục chứa một số tệp có tên có khoảng trắng, vd
$ ls -1 dir1
file 1
file 2
file 3
Tôi có thể sao chép thành công tất cả chúng vào một thư mục khác như thế này:
$ find dir1 -mindepth 1 -exec cp -t dir2 {} +
Tuy nhiên, đầu ra của find dir1 -mindepth 1không gian không thoát:
$ find dir1 mindepth 1
dir1/file 1
dir1/file 3
dir1/file 3
Nếu tôi sử dụng print0thay vì print, đầu ra vẫn chứa các khoảng trắng chưa thoát:
$ find dir1 mindepth 1 -print0
dir1/file 1dir1/file 2dir1/file 3
Để sao chép các tệp này theo cách thủ công bằng cách sử dụng cp, tôi sẽ cần phải thoát khoảng trắng; nhưng có vẻ như điều này là không cần thiết khi cpcác bản sao xuất phát find, bất kể tôi sử dụng +hay \;ở cuối lệnh.
Lý do cho điều này là gì?
find..execcó thể tự xử lý tên tập tin kỳ lạ ..