it-swarm-vi.tech

Làm thế nào để làm cho scp sao chép các tập tin ẩn?

Tôi thường sử dụng SCP để sao chép các tệp xung quanh - đặc biệt là các tệp liên quan đến web. Vấn đề là bất cứ khi nào tôi làm điều này, tôi không thể nhận lệnh của mình để sao chép các tệp bị ẩn (ví dụ: .htaccess).

Tôi thường gọi điều này:

scp -rp src/ [email protected]:dest/

Điều này không sao chép các tập tin ẩn. Tôi không muốn phải gọi điều này một lần nữa (bằng cách làm một cái gì đó như scp -rp src/.* ... - và điều đó có lạ ... ngụ ý nào.

Tôi không thấy bất cứ điều gì trong trang scp về một "tập tin ẩn".

Làm thế nào tôi có thể thực hiện điều này?

64
rascher

Điều đó hoàn toàn phù hợp với các tập tin ẩn./Ở cuối nguồn cho biết "mọi tệp trong thư mục này". Tuy nhiên, thử nghiệm và nghiên cứu mang bạn ra. Đây là hành vi ngu ngốc.

" câu trả lời " là nối một dấu chấm vào cuối nguồn:

scp -rp src/. [email protected]:dest/

Câu trả lời thực là sử dụng rsync.

68
Matt Simmons

Bạn có thể thử rsync. Nó phù hợp hơn cho công việc này:

rsync -av src/user @ server: mệnh /

(Và trang hướng dẫn của nó đáng để đọc.)

25
cstamas

Đừng đặt dấu gạch chéo sau thư mục nguồn. Mã của bạn sẽ trông như thế này:

scp -rp src [email protected]:dest/

Điều này sẽ tạo một thư mục 'src' dưới 'Dest' trên máy từ xa, với tất cả các tệp ẩn đi kèm. Nó có thể không chính xác những gì bạn muốn, nhưng nó sẽ sao chép các tập tin ẩn trong src.

9
kbyrd

Sau đây sẽ giải quyết vấn đề, điều này đã được kiểm tra đầy đủ trên môi trường tích hợp liên tục của chúng tôi

scp -rp src/. [email protected]:dest/
example scp -rp /usr/src/code/. [email protected]:/usr/dest/code/

Hy vọng nó giúp

3
stevensagaar

Để chỉ sao chép các tập tin ẩn, sử dụng lệnh này

scp -rp /path_to_copy_hidden/.[!.]* [email protected]:/path_to_paste/

Trò chơi thực tế là /.[!.]* thẻ đang đề cập đến các tệp bắt đầu bằng . (ẩn)

1
Shahzaib Hayat Khan

scp hỗ trợ các biểu thức thông thường, điều này sẽ thực hiện thủ thuật cho bạn:

scp -rp src/(*|.*) [email protected]:dest/

0
donmutti

Kiểm soát sửa đổi phân tán xử lý các tập tin ẩn

Do lỗ hổng CVE-2018-20685, /. trick không thể sử dụng được nữa với scp. Tuy nhiên, kiểm soát sửa đổi phân tán như git hoặc Hg Mecurial sẽ xử lý các tệp ẩn như bất kỳ tệp nào khác. Dưới đây là các lệnh cho mục ưa thích của tôi - Hg Mercurial :

server:$ Sudo apt install Mercurial
client:$ Sudo apt install Mercurial
client:$ hg init src
client:$ cd src/
client:$ hg addr
client:$ hg com -m "first commit"
client:$ cd
client:$ hg clone src ssh://[email protected]/dest/

Những thay đổi sau đó sẽ cần phải được cam kết lại với client:$ hg com -m "commit message" và sau đó được đẩy bằng cách sử dụng client:$ hg Push chỉ huy. Tìm hiểu thêm về việc đẩy các thay đổi từ điều này Hg Mercurial cheat sheet .

0
Serge Stroobandt

Không có giải pháp scp nào ở trên làm việc cho tôi. Tuy nhiên, tôi đã thấy rằng những điều sau đây hoạt động trên thư mục cygwin: scp -r/* Host: thư mục '*' khớp với tất cả các tệp có thể nhìn thấy và bỏ qua phần ẩn.

0
Ray Cote

Nếu đăng nhập mật khẩu bị vô hiệu hóa trên máy từ xa và cách duy nhất để đăng nhập là thông qua khóa chung, thì bạn có thể sử dụng cách này:

$ rsync -av -s 'ssh -i /path/to/your/private/SSH/key' --progress [email protected]:/remote/source/directory/ /local/destination/directory/

Nó sao chép các tập tin ẩn quá.

Ngoài ra, xin lưu ý rằng "user1" phải có quyền đọc các tệp đó, ví dụ: bạn không thể sao chép các thư mục ssh của người dùng khác bằng phương pháp này.

0
Gergely Lukacsy