Vấn đề
Khi sao chép tệp bằng cp -H
hoặc cp -L
, tôi nhận được kết quả tương tự:
$ ls -l fileA
fileA -> fileB
$ cp fileA somewhere/ -H
$ ls -l somewhere/
fileA # fileA is a copy of fileB, only renamed, with same properties!
Câu trả lời này ở đây mô tả cả hai tùy chọn là UNLESS tương tự được sử dụng kết hợp với -R
. Không dành cho tôi. Các tệp mềm khi các liên kết cứng trở thành các bản sao của các tệp mà chúng trỏ đến tại nguồn.
Câu hỏi :
Việc sử dụng đúng cp -H
và là cp -L
gì? Đây có phải là hành vi dự kiến?
Nỗ lực của tôi để giải quyết :
man cp
nói với tôi khá giống nhau cho cả hai lựa chọn, nhưng info cp
's từ ngữ làm cho nó thậm chí nhiều hơn khó hiểu đối với tôi. Có lẽ ai đó có thể giúp tôi phá vỡ điều này một chút:
-H
Nếu một đối số dòng lệnh chỉ định một liên kết tượng trưng, sau đó sao chép tệp mà nó trỏ đến chứ không phải chính liên kết tượng trưng . Tuy nhiên, sao chép (bảo tồn bản chất của nó) bất kỳ liên kết tượng trưng nào gặp phải thông qua truy cập đệ quy.
Điều này nghe có vẻ mâu thuẫn với tôi: Tôi đoán rằng » bản chất của một liên kết tượng trưng « là nó chỉ ra đâu đó
-L, --dereference
Thực hiện theo các liên kết tượng trưng khi sao chép từ chúng. Với tùy chọn này,cp
không thể tạo một liên kết tượng trưng. Ví dụ: một liên kết tượng trưng (đến tệp thông thường) trong cây nguồn sẽ được sao chép sang một tệp thông thường trong cây đích.
Tôi biết rằng một liên kết tượng trưng không phải là một tệp thông thường, nhưng tôi thừa nhận rằng tôi đã quá tin vào lời giải thích này ở đây.
info cp
và cố gắng tìm hiểu xem lựa chọn từ nào trong tùy chọn này thực sự có nghĩa là gì & ndash; và bài đăng này là về. Bài đăng cũng chứa từ ngữ thực tế từ info cp
- do đó tôi ít nhất cũng phải mở nó;)
info cp
, tìm kiếm-R
. Nó nóiCopy directories recursively.
Nhưng bạn đang thử nghiệm với các thư mục không. Sự khác biệt là về những gì bên trong các thư mục bạn đang sao chép, không phải các đối số dòng lệnh.