Thông báo lỗi 'scp không phải là tệp thông thường' cho biết rằng bạn đang cố sử dụng lệnh SCP để sao chép tệp, nhưng nguồn hoặc đích được chỉ định không phải là tệp thông thường. Lệnh SCP được sử dụng rộng rãi để truyền tệp một cách an toàn giữa các máy chủ qua kết nối SSH (Secure Shell). Nó yêu cầu chỉ định cả nguồn và đích để truyền tệp. Vì vậy, lỗi thường xảy ra do đường dẫn file không chính xác.
Thông báo lỗi “scp not a normal file” có thể xảy ra trên nhiều hệ điều hành khác nhau, bao gồm cả các hệ thống tương tự Unix như ‘Linux’, ‘macOS’ và ‘BSD’. Nó cũng có thể xảy ra trên các hệ thống Windows có cài đặt lệnh SCP, thường là một phần của phần mềm bên thứ ba như 'PuTTY' hoặc 'Cygwin'
Để hỗ trợ bạn giải quyết lỗi này, chúng tôi đã tuyển chọn hướng dẫn khắc phục sự cố để giúp bạn giải quyết vấn đề này một cách chi tiết.
1. Vấn đề về cú pháp
Unix và Linux nổi tiếng về việc tuân thủ nghiêm ngặt các quy tắc cú pháp được xác định rõ ràng và các tiêu chuẩn chi phối các lệnh, tập lệnh shell và các tệp cấu hình. Việc tuân theo cú pháp quy định là rất quan trọng để đảm bảo thực thi đúng cách và hoạt động mong đợi trong các hệ điều hành này.
Vì vậy, nếu phát hiện ra lỗi cú pháp, hệ thống sẽ tự động nhắc người dùng lỗi; trong trường hợp này, lỗi là “scp:không phải tệp thông thường”. Có một số điều cần lưu ý khi cố gắng sao chép tệp.
1.1 Kiểm tra dấu cách
Kiểm tra khoảng trống trong tên tệp hoặc thư mục là một nhiệm vụ quan trọng trong Unix/Linux. Nó đảm bảo rằng không có khoảng trắng ở đầu hoặc cuối có khả năng gây ra sự cố khi làm việc với lệnh hoặc tập lệnh.
Ví dụ:hãy xem xét tình huống trong đó bạn có tệp có tên 'my_file.txt' nằm trong thư mục '/home/user'. Để xác minh sự hiện diện của khoảng trắng trong tên tệp, bạn có thể sử dụng lệnh sau:
ls -Q/home/user
Tùy chọn -Q được sử dụng để hiển thị tên tệp và thư mục trong dấu ngoặc kép. Nếu có bất kỳ khoảng trắng nào tồn tại trong tên tệp, chúng sẽ được đặt rõ ràng trong dấu ngoặc kép khi chạy lệnh này.
Chẳng hạn, nếu đầu ra hiển thị một kết quả cụ thể, chúng ta nên thực hiện hành động cần thiết
"myfile.txt"
Nó biểu thị sự hiện diện của một khoảng trắng trong tên tệp. Trong những trường hợp như vậy, bạn nên xử lý khoảng trắng trong tên tệp bằng cách sử dụng các ký tự đặc biệt hoặc đặt tên trong dấu ngoặc kép khi làm việc với lệnh hoặc tập lệnh.
Để ngăn chặn các vấn đề tiềm ẩn liên quan đến khoảng trắng trong tên tệp hoặc thư mục, thông thường nên sử dụng tên tệp không chứa dấu cách
1.2 Thiếu hoặc thừa dấu hai chấm
Lệnh SCP yêu cầu sử dụng dấu hai chấm để chỉ định đường dẫn tệp và máy chủ từ xa. Ví dụ:sử dụng cú pháp không chính xác như ‘scp user@host filepath’ thay vì ‘scp user@host:filepath’ có thể gây ra lỗi. Vì vậy, để tránh lỗi “scp không phải là tệp thông thường”, hãy đảm bảo rằng bạn tuân thủ các giới hạn cú pháp.
1.3 Trộn lẫn Nguồn và Đích
Khi sử dụng lệnh SCP, việc trộn lẫn đường dẫn nguồn và đích có thể gây ra lỗi hoặc hành vi không mong muốn. Điều quan trọng là phải duy trì đúng thứ tự để đảm bảo truyền tệp thành công.
Để làm rõ, lệnh SCP tuân theo cú pháp:
scp <source> <destination>.
Nếu bạn hoán đổi nhầm đường dẫn nguồn và đích, điều này có thể dẫn đến việc các tệp bị sao chép sai hướng hoặc gây ra lỗi “scp không phải là tệp thông thường” nếu đích đến không hợp lệ.
Ví dụ:hãy xem xét sao chép tệp có tên “file.txt” từ máy cục bộ sang máy chủ từ xa:
Correct: scp file.txt user@remote:/path/to/destination
Incorrect: scp user@remote:/path/to/destination file.txt
Việc sử dụng không chính xác sẽ cố gắng sao chép tệp từ xa có tên “file.txt” vào máy cục bộ, dẫn đến kết quả không mong muốn hoặc xảy ra lỗi. Để đảm bảo quá trình truyền tệp diễn ra suôn sẻ, hãy luôn kiểm tra kỹ và duy trì đúng thứ tự của đường dẫn nguồn và đích khi sử dụng lệnh SCP.
2. Sử dụng tùy chọn “-r”
Lý do bạn gặp phải lỗi này là có thể bạn đang sao chép một thư mục trong khi không chỉ định cho hệ điều hành rằng bạn đang sao chép thư mục.
Theo mặc định, SCP xử lý tệp này như các tệp thông thường, vì vậy tùy chọn -r phải được thêm vào khi sao chép một thư mục. Lỗi “scp not a normal” xảy ra khi người dùng đang cố sao chép một thư mục và không chỉ định hành động này bằng cách sử dụng tùy chọn -r.
Khi bạn muốn sao chép toàn bộ thư mục, cùng với tất cả các thư mục con và tệp của nó, bạn sẽ sử dụng tùy chọn “-r”. Nếu không có tùy chọn “-r”, SCP sẽ chỉ sao chép các tệp riêng lẻ chứ không phải thư mục.
Sau đây là một ví dụ về cách sử dụng scp với tùy chọn “-r”:
scp -r /path/to/source_directory user@remote:/path/to/destination_directory
Lệnh này sẽ sao chép đệ quy nội dung của “source_directory” và tất cả các thư mục con của nó vào “destination_directory” trên máy chủ từ xa.
GIỚI THIỆU TÁC GIẢ
Dawood Janjua
Dawood Janjua là một người đam mê công nghệ có tay nghề cao với kiến thức phong phú về xử lý sự cố và chơi game trên Windows. Ông có chứng chỉ CCNA và có thành tích đã được chứng minh trong việc cung cấp hỗ trợ đặc biệt cho khách hàng. Trong khi hiện đang làm tác giả, Dawood mong muốn đạt được chứng chỉ CCIE uy tín trong tương lai để mở rộng chuyên môn kỹ thuật của mình và cung cấp hỗ trợ cấp khu vực. Với niềm đam mê chơi game và chuyên môn về công nghệ, Dawood cam kết chia sẻ kiến thức của mình với cộng đồng để giúp những người khác nâng cao kỹ năng và kiến thức trong lĩnh vực này.