Làm thế nào tôi có thể sao chép một thư mục và đổi tên nó trong cùng một lệnh?


15

Hiện tại, tôi đang chạy hai lệnh này để tạo bản sao lưu nhanh của thư mục. Có cách nào để kết hợp hai lệnh thành một, để tôi sao chép và đổi tên thư mục mới trong một lệnh không?

#cp -R /tf/Custom_App /tf/Custom_App_backups/
#mv /tf/Custom_App_backups/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21

1
cp -R /tf/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21
jesse_b

Cách xác định bí danh hoặc chức năng cho hai điều đó;)
LinuxSecurityFreak

Câu trả lời:


21

Bạn có thể làm

cp -R /tf/Custom_App /tf/Custom_App_backups/Custom_App_2017-12-21

Tuy nhiên , nếu thư mục đích đã tồn tại, phần này sẽ nối phần cuối của đường dẫn nguồn vào đường dẫn đích, tạo /tf/Custom_App_backups/Custom_App_2017-12-21/Custom_Appvà sau đó sao chép phần còn lại của cây trong đó.

Để ngăn chặn điều này, sử dụng /tf/Custom_App/.như là nguồn. Tất nhiên, trong trường hợp đó bạn có thể muốn rm -r /tf/Custom_App_backups/Custom_App_2017-12-21trước, nếu bạn không muốn các tệp cũ hơn nằm xung quanh đó sau khi sao chép.

Sự khác biệt giữa /some/dir/some/dir/.được thảo luận một thời gian trước trong cp hành xử kỳ lạ khi. (dấu chấm) hoặc .. (dấu chấm chấm) là thư mục nguồn


Một cách khác để chuyển .như thư mục nguồn là sử dụng -Tcờ để nói cpđể ghi đè đích chứ không phải tạo thành viên mới bên trong nó.
Toby Speight

@TobySpeight, ... trong GNU cp.
ilkkachu

1
Các /tf/Custom_app/.Bí quyết là chỉ là những gì tôi cần.
Martin Bonner hỗ trợ Monica

cp -acũng hoạt động.
Flow2k

1
@ Flow2k, các tiện ích GNU nói riêng có vô số tùy chọn không chuẩn, nhiều trong số chúng rất hữu ích. cp -atất nhiên cũng xuất hiện trong ví dụ FreeBSDOpenBSD nhưng nó vẫn không phải là một tính năng tiêu chuẩn, nghĩa là không được chỉ định bởi POSIX . ( cp -Tđã được đề cập trước đó có vẻ như là một GNU, nó không có trong POSIX và không phải trong BSD như tôi có thể thấy.)
ilkkachu

1

Ngoài ra, bạn có thể làm như vậy:

mkdir /tf/Custom_App_backups/Custom_App_2017-12-21 # prepare the target location
cp -R /tf/Custom_app/. /tf/Custom_App_backups/Custom_App_2017-12-21 # copy only the contents

Điều này sẽ cho phép bạn xác định vị trí tùy chỉnh của bạn trước. Ngoài ra, lưu ý rằng nó sử dụng hậu tố /.Điều này cho phép bạn chỉ sao chép nội dung và loại trừ thư mục chứa nó - trong trường hợp này là Custom_appthư mục.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.