Học bằng cách đọc theo thứ tự

Thao tác tệp — cp / mv / rm

Sao chép tệp bằng cp, di chuyển và đổi tên bằng mv, xóa tệp bằng rm, và xóa thư mục bằng rmdir và rm -r — cùng các tùy chọn chính, thực hành ngay trên terminal trong trình duyệt.

Sao chép — cp

cp là lệnh nhân bản một tệp.

Viết cp nguồn đích sẽ giữ lại tệp gốc và tạo đích như một bản sao mới.

Thêm -r để sao chép cả một thư mục, hoặc -i để tránh ghi đè.

Cách dùngÝ nghĩa
cp src dstNhân bản một tệp (bản gốc vẫn còn)
cp -r src dstSao chép một thư mục cùng nội dung của nó
cp -i src dstHỏi trước khi ghi đè khi đích đã tồn tại
Cách cp hoạt động
cp a.txt b.txtCả a.txt và b.txtđều còncp a.txt sub/Sao chép vào sub/(bản gốc vẫn còn)cp -r dir copySao chép cả thư mục
cp giữ bản gốc và tạo một bản sao. Thêm -r để sao chép thư mục cùng nội dung của nó.
echo 'report' > report.txt   # tạo tệp mẫu
cp report.txt backup.txt     # nhân bản tệp (bản gốc vẫn còn)
mkdir docs                   # chuẩn bị một thư mục
cp -r docs docs_copy         # sao chép cả thư mục

① Tạo một tệp mẫu bằng echo 'hello' > a.txt.

② Dùng cp để nhân bản a.txt thành b.txt.

③ Tạo một thư mục bằng mkdir box, rồi dùng cp -r để sao chép box thành thư mục box_copy cùng toàn bộ nội dung.

④ Xác nhận bằng ls rằng cả b.txtbox_copy đều tồn tại. (Chạy đúng thì phần giải thích sẽ hiện ra.)

Linux console
0 / 5 đã hoàn thành
Loading Linux Terminal...

Di chuyển và Đổi tên — mv

mv là lệnh dùng cho cả di chuyển lẫn đổi tên.

mv tệp thư-mục/ để di chuyển, còn mv tên-cũ tên-mới để đổi tên tại chỗ.

Di chuyển trùng vào một tên đã có sẽ ghi đè mà không hỏi, nên hãy thêm -i khi bạn muốn ngăn điều đó.

Cách dùngÝ nghĩa
mv file directory/Di chuyển một tệp (bản gốc biến mất)
mv oldname newnameĐổi tên ngay tại chỗ
mv -i src dstHỏi khi sắp ghi đè
mv -f src dstGhi đè cưỡng bức mà không hỏi
Cách mv hoạt động
mv a.txt sub/a.txt chuyển vào sub/(bản gốc biến mất)mv a.txt new.txtTên đổi tại chỗ(đổi tên)mv -i a.txt b.txtXác nhận y/n trướckhi ghi đè
mv di chuyển hoặc đổi tên, và tên gốc không còn lại. Thêm -i để xác nhận trước khi ghi đè.
echo 'draft' > draft.txt    # tạo tệp mẫu
mv draft.txt final.txt      # đổi tên (draft.txt biến mất)
echo 'old' > final.txt      # chuẩn bị một đích để ghi đè
mv -i draft.txt final.txt   # đã tồn tại, nên xác nhận y/n

① Tạo một tệp mẫu bằng echo 'data' > old.txt.

② Dùng mv để đổi tên old.txt thành new.txt.

③ Tạo thêm một tệp bằng echo 'memo' > note.txt.

④ Chạy mv -i note.txt new.txt (vì new.txt đã tồn tại nên xuất hiện hỏi xác nhận ghi đè — gõ y để tiếp tục).

⑤ Xác nhận bằng ls rằng note.txt đã biến mất và chỉ còn lại new.txt.

Linux console
0 / 5 đã hoàn thành
Loading Linux Terminal...

Xóa tệp — rm

rm là lệnh xóa tệp.

Nó không đưa vào thùng rác — tệp biến mất ngay tại chỗ và không thể khôi phục.

Thêm -i để xác nhận từng cái một, hoặc -f để xóa mà không báo lỗi hay hỏi.

Cách dùngÝ nghĩa
rm fileXóa một tệp (không thể hoàn tác)
rm -i fileXóa kèm xác nhận cho từng tệp
rm -f fileXóa cưỡng bức không hỏi hay cảnh báo
Cách rm hoạt động
rm file.txtXóa tệpngay tại chỗKhông có thùng rácKhông thể khôi phụcrm -i file.txtXác nhận y/n trướckhi xóa
rm xóa ngay lập tức, không có thùng rác. Thêm -i để xác nhận trước khi xóa.
echo 'log' > old.log    # tạo tệp mẫu
rm old.log              # xóa tệp
echo 'tmp' > tmp.log    # tạo thêm một tệp
rm -i tmp.log           # xác nhận y/n trước khi xóa

① Tạo một tệp không cần thiết bằng echo 'temp' > junk.txt.

② Xóa junk.txt bằng rm.

③ Tạo thêm một tệp bằng echo 'temp' > junk2.txt.

④ Chạy rm -i junk2.txt (xuất hiện hỏi xác nhận trước khi xóa, nên gõ y).

⑤ Xác nhận bằng ls rằng cả hai đều đã biến mất.

Linux console
0 / 5 đã hoàn thành
Loading Linux Terminal...

rm không thể hoàn tác

Tệp bị xóa bằng rm không vào thùng rác — nó bị gỡ bỏ ngay tại chỗ.

Đặc biệt rm -rf xóa cả một thư mục và mọi thứ bên trong mà không hỏi xác nhận, nên hãy kiểm tra kỹ tên đích trước khi chạy.

Xóa thư mục rỗng — rmdir

rmdir chỉ xóa thư mục rỗng.

Nếu bên trong còn tệp hoặc thư mục con thì nó không bị xóa và thư mục vẫn còn.

Thêm -p để xóa một đường dẫn lồng nhau như a/b/c theo từng bước, đi ngược lên qua các thư mục cha rỗng.

Cách dùngÝ nghĩa
rmdir directoryXóa một thư mục rỗng
rmdir -p a/b/cNếu rỗng, xóa c → b → a, đi ngược lên qua các thư mục cha
Cách rmdir hoạt động
mkdir boxMột thư mục rỗngđược tạormdir box (rỗng)Rỗng, nên có thểxóa đượcrmdir box (có nội dung)Không xóa,vẫn còn (lỗi)
rmdir chỉ thành công khi rỗng. Dùng -p để xóa cả các thư mục cha rỗng.
mkdir empty_box        # tạo một thư mục rỗng
rmdir empty_box        # rỗng, nên có thể xóa được
mkdir -p a/b/c         # tạo một cấu trúc lồng rỗng
rmdir -p a/b/c         # xóa c → b → a lên đến thư mục cha

① Tạo một thư mục rỗng bằng mkdir emptydir, rồi xóa nó bằng rmdir.

② Tạo một thư mục lồng nhau rỗng bằng mkdir -p a/b/c.

③ Dùng rmdir -p a/b/c để xóa cùng lúc các thư mục cha rỗng từ c lên đến a.

④ Xác nhận bằng ls rằng emptydira đều đã biến mất.

Linux console
0 / 5 đã hoàn thành
Loading Linux Terminal...

Xóa cả một thư mục — rm -r

Một thư mục chứa tệp hoặc thư mục con không thể gỡ bỏ bằng rmdir.

rm -r xóa thư mục cùng toàn bộ nội dung của nó.

Thêm cả -f (rm -rf) sẽ gỡ bỏ mọi thứ mà không hỏi xác nhận hay cảnh báo, nên đây là tùy chọn cần xử lý cẩn thận nhất.

Cách dùngÝ nghĩa
rm -r directoryXóa một thư mục cùng nội dung của nó một cách đệ quy
rm -rf directoryXóa cưỡng bức cả nội dung mà không hỏi (nguy hiểm nhất)
Cách rm -r hoạt động
rmdir dir (có nội dung)Không xóa được (lỗi)rm -r dirXóa cả thư mụcvà nội dungKhông thể hoàn tácKiểm tra kỹ đường dẫntrước khi chạy
Thư mục có nội dung được xóa toàn bộ bằng rm -r. Không thể hoàn tác, nên hãy xác nhận đường dẫn trước khi chạy.

① Tạo một thư mục lồng nhau dùng một lần bằng mkdir -p trash/inner.

② Xóa thư mục trash cùng toàn bộ nội dung bằng rm -r.

③ Xác nhận bằng ls rằng trash đã biến mất.

Linux console
0 / 3 đã hoàn thành
Loading Linux Terminal...
QUIZ

Kiểm tra kiến thức

Hãy trả lời từng câu hỏi một.

Câu 1Đâu là sự khác nhau đúng giữa cpmv?

Câu 2Bạn thêm tùy chọn nào để sao chép một thư mục cùng nội dung của nó?

Câu 3Điều gì xảy ra khi bạn chạy rm -r trash?