Tôi muốn sao chép tất cả các tệp từ thư mục con vào thư mục khác mà không sao chép thư mục gốc. Trong một thiết bị đầu cuối tôi sẽ chỉ làm điều này:Cách sao chép tất cả các tệp từ thư mục này sang thư mục khác trong tập lệnh bash
cp -r dir1/* dir2
và sau đó dir2 sẽ chứa tất cả các tệp từ dir1 mà không chứa dir1. Tôi đang cố gắng để nhân rộng này trong một kịch bản bash và tôi nhận được một lỗi. Đây là mã bash của tôi:
cp -r $pck_dir"/*" $TAR_DIR"/pck/"
tôi nhận được lỗi này:
cp: cannot stat ‘./mailman/lists/mailman/*’: No such file or directory
Đây là kỳ lạ vì tôi có thể xác minh rằng các thư mục trong câu hỏi tồn tại. Tôi tin rằng bash là phàn nàn về '*' nhưng tôi không chắc chắn lý do tại sao. Ai đó có thể khai sáng cho tôi về những gì tôi đang làm sai?
'cp -r "$ pck_dir"/* "$ TAR_DIR"/PCK/'- bỏ phiếu đóng cửa như lỗi đánh máy. – devnull
Bất kỳ vấn đề nào khi sử dụng '{}' xung quanh biến 'cp -r $ {pck_dir}/* $ {TAR_DIR}/pck /' – PradyJord
Đây là câu hỏi được nêu rõ với câu trả lời rõ ràng. Tôi đã có cùng một vấn đề và nhờ câu hỏi này tôi không còn nữa. Lời giải thích cho lý do tại sao câu hỏi này được đóng lại không có ý nghĩa. – andreasdr