15 Câu Lệnh Khi Làm Việc Với Lệnh Cp Trong Linux Command - MTD SEC

MTD SEC

Chia Sẻ Để Thành Công

Home Top Ad

Post Top Ad

Thứ Bảy, 23 tháng 3, 2019

15 Câu Lệnh Khi Làm Việc Với Lệnh Cp Trong Linux Command


Trong khi làm việc với linux việc copy các thông tin cần thiết là điều quan trọng hôm nay mình giới thiệu các bạn về 16 câu lệnh phổ biến khi làm việc với lệnh copy trên linux!





Cấu trúc của lệnh





cp {options} source target




Trong đó





  • options là các tùy chọn
  • source là file nguồn thư mục nguồn
  • target tên file đich hoác thư mục đích




1: Copy thư mục, file





cái này thì khác là đơn giản rồi hầu hết chúng ta thường dùng nó





cp /etc/passwd /mnt/backup/




kết quả





root@mtd:~# ls -l /mnt/backup/
total 4
-rw-r--r-- 1 root root 2410 Feb 3 17:10 passwd
root@mtd:~#




2: Copy nhiều thư mục vào 1 thư mục





Bây giờ mình sẽ copy nhiều thư mục vào một qua câu lệnh





root@mtd:~# cp /etc/passwd /etc/group /etc/shadow /mnt/backup/




Như vậy tính năng mở rộng thư mục của lệnh cp được mở rộng ra thành cấu trúc





cp {options} source1 source2 source3 source4 target




3: Nghi đè file ở thư mục đích chú ta dùng tham số -i





root@mtd:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'? y
root@mtd:~#




4: Debug cp. cái tham số này mình cũng chưa biết gọi nó là gì, với tham số -v thì quá trình hoạt động của lệnh cp sẽ được hiển thị nên mình gọi là là debug (tiếng anh của nó là verbose output hiển thị kết quả đầu ra nhưng mình hay gọi là debug do thói quen)





root@mtd:~# cp -v /etc/fstab  /mnt/backup/
'/etc/fstab' -> '/mnt/backup/fstab'
root@mtd:~#
root@mtd:~# cp -iv /etc/fstab /mnt/backup/
cp: overwrite '/mnt/backup/fstab'? y
'/etc/fstab' -> '/mnt/backup/fstab'
root@mtd:~#




5: Copy thư mục với tham số -r. khi nguồn cần copy của chúng ta là một thư mục thì chúng ta cần thêm tham số -r vào để cho lệnh cp có thể làm việc được với thư mục





root@mtd:~# cp -r /home/linuxtechi /mnt/backup/
root@mtd:~#




kết quả chúng ta có





root@mtd:~# ls -l /mnt/backup/linuxtechi/
total 24
drwxr-xr-x 2 root root 4096 Feb 3 17:41 data
-rw-r--r-- 1 root root 7 Feb 3 17:41 file_1.txt
-rw-r--r-- 1 root root 7 Feb 3 17:41 file_2.txt
-rw-r--r-- 1 root root 7 Feb 3 17:41 file_3.txt
-rw-r--r-- 1 root root 7 Feb 3 17:41 file_4.txt
-rw-r--r-- 1 root root 7 Feb 3 17:41 file_5txt
-rw-r--r-- 1 root root 0 Feb 3 17:41 file_5.txt
root@mtd:~#




6: Archive files and directory Trong khi sao chép thư mục bằng lệnh cp, chúng ta thường sử dụng tùy chọn -r hoặc -R, nhưng thay vì tùy chọn -r, chúng ta có thể sử dụng ‘-a, sẽ lưu trữ các tệp và thư mục trong khi sao chép, ví dụ được hiển thị bên dưới,





root@mtd:~# cp -a /home/mtd /mnt/backup/
root@mtd:~# ls -l /mnt/backup/mtd/
total 24
drwxr-xr-x 2 root root 4096 Feb 3 17:41 data
-rw-r--r-- 1 root root 7 Feb 3 17:39 file_1.txt
-rw-r--r-- 1 root root 7 Feb 3 17:39 file_2.txt
-rw-r--r-- 1 root root 7 Feb 3 17:39 file_3.txt
-rw-r--r-- 1 root root 7 Feb 3 17:39 file_4.txt
-rw-r--r-- 1 root root 7 Feb 3 17:40 file_5txt
-rw-r--r-- 1 root root 0 Feb 3 17:39 file_5.txt
root@mtd:~#




Nghĩa là với tùy chọn -a nó sẽ sinh ra một thư mục trong thư mục đến cùng tên với thu mục gốc và chuyển file vào đó





7: Chỉ sao chép khi tệp nguồn mới hơn tệp đích. trong phần 6 chúng ta có 5 tệp đã được copy vào thư mục backup. bây giờ phía nguồn chúng ta tiến hành thay đổi 1 file nào đó và copy lại





root@mtd:~# cd /home/mtd/
root@mtd:/home/mtd# echo "LinuxRocks" >> file_1.txt
root@mtd:/home/mtd# echo "LinuxRocks" >> file_4.txt
root@mtd:/home/mtd# cp -v -u file_*.txt /mnt/backup/linuxtechi/
'file_1.txt' -> '/mnt/backup/linuxtechi/file_1.txt'
'file_4.txt' -> '/mnt/backup/linuxtechi/file_4.txt'
root@mtd:/home/linuxtechi#




Tính năng này nó gầng giống với lệnh rsync để đồng bộ dữ liệu giữa 2 thư mục theo thời gian thực





8: Không nghi đè file ở thư mục đích nếu chúng đã toàn tại. với tham số -n thì khi thư mục đích tồn tại file cũng tên thì tệp copy sẽ được bỏ qua





bình thường như sau





root@mtd:~# cp -i /etc/passwd /mnt/backup/
cp: overwrite '/mnt/backup/passwd'?




khi dùng tham số -n





root@mtd:~# cp -n /etc/passwd /mnt/backup/
root@mtd:~#




9: tạo symbolic link bằng lệnh cp. đây là một tính năng khá hay mình hay dùng để tạo symbolic links. để tạo symbolic links chúng ta sẽ dùng lệnh cp với tham số -s





root@mtd:~# cp -s /home/mtd/file_1.txt /mnt/backup/
root@mtd:~# cd /mnt/backup/
root@mtd:/mnt/backup# ls -l file_1.txt
lrwxrwxrwx 1 root root 27 Feb 5 18:37 file_1.txt -> /home/mtd/file_1.txt
root@mtd:/mnt/backup#




10: ngoài việc tạo được symbolic links thì lệnh copy còn có thể tạo được Hard link với tham số -l





root@mtd:~# cp -l /home/mtd/devops.txt /mnt/backup/
root@mtd:~#




kết quả





root@mtd:~# ls -li /mnt/backup/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb 5 20:02 /mnt/backup/devops.txt
root@linuxtechi:~# ls -li /home/linuxtechi/devops.txt
918196 -rw-r--r-- 2 root root 37 Feb 5 20:02 /home/mtd/devops.txt
root@mtd:




11: Sao chép các thuộc tính từ nguồn đến đích. Nếu bạn muốn chỉ sao chép các thuộc tính từ nguồn đến đích bằng lệnh cp, thì hãy sử dụng tùy chọn –attributes-only





root@mtd:/home/mtd# cp --attributes-only /home/mtd/distributions.txt /mnt/backup/
root@mtd:/home/mtd# ls -l /home/mtd/distributions.txt
-rw-r--r-- 1 root root 41 Feb 5 19:31 /home/mtd/distributions.txt
root@mtd:/home/linuxtechi# ls -l /mnt/backup/distributions.txt
-rw-r--r-- 1 root root 0 Feb 5 19:34 /mnt/backup/distributions.txt
root@mtd:/home/linuxtechi#




Bạn có thể thấy file mới được tạo ra nhưng chỉ có thuộc tính còn nội dung file là không có.





12: tạo một bản backup ở thư mục đích. Khi bạn dùng với tham số -backup thì một file backup sẽ được tạo ra ở thư mục đích cùng với việc copy file!





root@mtd:~# cp --backup=simple -v /home/mtd/distributions.txt /mnt/backup/distributions.txt
'/home/mtd/distributions.txt' -> '/mnt/backup/distributions.txt' (backup: '/mnt/backup/distributions.txt~')
root@mtd:~#




phần backup lại có các tùy chọn





  • none, off: không tạo file backup
  • numbered, t số lượng file backup là bao nhiêu
  • existing, nil nếu file backuo có rồi thì nghi đè hoặc bỏ qua
  • simple, never luôn tạo bản backup simple




13: giữ nguyên thông số file khi backup. khi chúng ta dùng lệnh cp thì chúng ta thấy file mới tạo ra nội dung cũ nhưng thống số mới như người người sẽ đổi về người dung khi thao tác lệnh cp. để giải quyết vấn đề này chúng ta dùng tham số -p





root@mtd:~# cd /home/mtd/
root@mtd:/home/mtd# cp -p devops.txt /mnt/backup/
root@mtd:/home/mtd# ls -l devops.txt
-rw-r--r-- 1 root root 37 Feb 5 20:02 devops.txt
root@mtd:/home/mtd# ls -l /mnt/backup/devops.txt
-rw-r--r-- 1 root root 37 Feb 5 20:02 /mnt/backup/devops.txt
root@mtd:/home/mtd#




14: Copy file với tham số -f: với tham số này thì khi chúng ta không mở được thư mục nguồn nhưng vẫn có thể coopy được file, thư mục





root@mtd:/home/mtd# cp -f distributions.txt  /mnt/backup/
root@mtd:/home/mtd#




15: Copy tên file. với cách này chúng tạo ở thư mục đích 1 file cùng tên và dung lượng bằng 0





root@mtd:/home/mtd# du -sh ubuntu-cloud.img
12M ubuntu-cloud.img
root@mtd:/home/mtd# cp --sparse=always ubuntu-cloud.img /mnt/backup/
root@mtd:/home/mtd# du -sh /mnt/backup/ubuntu-cloud.img
0 /mnt/backup/ubuntu-cloud.img
root@mtd:/home/mtd#




Một số tham số khi dùng spares





  • sparse=auto
  • sparse-always
  • sparse=never





trên đây là những cách hay dùng với lệnh cp trong linux các bạn có thể tham khảo và áp dụng!


Không có nhận xét nào:

Đăng nhận xét

Post Top Ad