Tạo thư mục sao lưu
Thuộc phần Kiến thức cơ bản trong hành trình Terminal của Coddy. Bài học 76 trên 82.
Thử thách
DễBây giờ, hãy mở rộng script sao lưu để tạo một thư mục sao lưu, nơi các tệp sẽ được lưu trữ.
Viết lại backup.sh từ đầu để chứa toàn bộ script đã cập nhật. Dùng > cho dòng đầu tiên để thay thế tệp, sau đó dùng >> để thêm từng dòng tiếp theo:
echo '#!/bin/bash' > backup.sh
echo 'read -p "Enter source directory: " source_dir' >> backup.sh
echo 'echo "Backing up: $source_dir"' >> backup.sh
echo 'backup_dir="backup"' >> backup.sh
echo 'mkdir -p "$backup_dir"' >> backup.sh
echo 'echo "Created backup folder: $backup_dir"' >> backup.shMỗi dòng được đặt trong dấu nháy đơn để shell ghi nguyên văn $source_dir và $backup_dir vào tệp, thay vì thay chúng bằng các giá trị tương ứng.
Sau đó, cấp quyền chạy cho tệp:
chmod +x backup.shCuối cùng, chạy script với đầu vào là documents. Terminal này không hỗ trợ tương tác, vì vậy hãy truyền câu trả lời vào script thay vì chờ được nhắc nhập:
echo "documents" | ./backup.shĐầu ra của bạn sẽ là:
Backing up: documents
Created backup folder: backupChạy ls để liệt kê nội dung thư mục và xác minh thư mục đã được tạo. Đầu ra sẽ hiển thị thư mục backup mới bên cạnh các tệp khác.
Gợi ý: Cờ
-ptrongmkdir -pngăn lỗi nếu thư mục đã tồn tại. Hãy đặt các biến trong dấu nháy (ví dụ:"$backup_dir") để xử lý chúng an toàn.
Tự làm thử
echo '#!/bin/bash' > backup.sh
echo 'read -p "Enter source directory: " source_dir' >> backup.sh
echo 'echo "Backing up: $source_dir"' >> backup.sh
chmod +x backup.sh
echo "documents" | ./backup.shTất cả bài học trong Kiến thức cơ bản
4Thư mục
Tạo thư mụcSao chép thư mụcDi chuyển và đổi tên thư mụcXóa thư mụcÔn tập: thao tác với thư mục2Điều hướng
In đường dẫn thư mục hiện tạiLiệt kê tệpChuyển thư mụcĐường dẫn tuyệt đối và tương đốiThư mục chính và thư mục gốcÔn tập: tìm đường8Chuyển hướng
Đầu ra chuẩnGhi đè vào tệpGhi thêm vào tệpĐầu vào chuẩnLỗi chuẩnÔn tập: Công cụ tạo nhật ký11Quyền truy cập
Tìm hiểu quyền truy cậpXem quyền truy cậpChmod bằng sốChmod bằng ký hiệuQuyền sở hữu tệpÔn tập: khóa chặt quyền14Dự án script sao lưu
Tổng quan dự ánLấy đường dẫn nguồn6Ký tự đại diện và mẫu
Ký tự đại diện dấu saoKý tự đại diện dấu hỏiKý tự đại diện trong ngoặc vuôngKết hợp ký tự đại diệnÔn tập: thao tác có chọn lọc9Đường ống
Đường ống là gìNối hai lệnh bằng đường ốngNối nhiều lệnh bằng đường ốngDùng đường ống với grepÔn tập: luồng xử lý dữ liệuTự luyện tập: Playground Terminal