Quản lý thư mục trong Unix/Linux
Một thư mục là một file mà nhiệm vụ duy nhất của nó là lưu giữ tên và các thông tin liên quan về file. Tất cả các file, có thể là file thường, đặc biệt hoặc thư mục được giữ trong các thư mục. UNIX sử dụng một cấu trúc thứ bậc để tổ chức các file và thư mục. Cấu trúc này thường được ...
Một thư mục là một file mà nhiệm vụ duy nhất của nó là lưu giữ tên và các thông tin liên quan về file. Tất cả các file, có thể là file thường, đặc biệt hoặc thư mục được giữ trong các thư mục.
UNIX sử dụng một cấu trúc thứ bậc để tổ chức các file và thư mục. Cấu trúc này thường được nhắc đến như là một cây thư mục. Cây này có một điểm root node, một ký tự gạch chéo (/) và tất cả các thư mục được chứa ở dưới nó.
Thư mục gốc (Home) trong Unix/Linux
Thư mục mà bạn thấy ngay khi bạn lần đầu tiên đăng nhập vào là thư mục chính.
Bạn sẽ làm nhiều việc trong thư mục chính và các thư mục phụ nơi bạn tạo ra để tổ chức các file của bạn.
Bạn có thể tiến vào thư mục chính bất cứ khi nào bằng cách sử dụng lệnh sau:
$cd ~ $
Tại đây biểu tượng ~ chỉ thư mục chính. Nếu bạn muốn vào thư mục chính của bất cứ người sử dụng nào khác, bạn sử dụng lệnh sau:
$cd ~username $
Để vào thư mục cuối cùng, bạn có thể sử dụng lệnh sau:
$cd - $
Pathname tuyệt đối/quan hệ trong Unix/Linux
Các thư mục được sắp xếp trong một hệ thống cấp bậc với gốc (/) ở trên cùng. Vị trí của bất kỳ file nào trong hệ thống này được miêu tả bởi pathname của nó.
Các phần tử của pathname là tách riêng nhau bởi một dấu (/). Một pathname là giá trị tuyệt đối nếu nó đươc miêu tả trong mối liên quan với gốc, vì thế pathname tuyệt đối thường bắt đầu với một dấu (/).
Dưới đây là ví dụ về các filename tuyệt đối.
/etc/passwd /users/sjones/chem/notes /dev/rdsk/Os3
Một pathname có thể trong mối quan hệ tới thư mục làm việc hiện tại của bạn. Các pathname tương đối không bao giờ bắt đầu với (/). Liên quan đến thư mục chính amrood, có một số pathname trông giống như sau:
chem/notes personal/res
Để xác định nơi bạn đang ở trong hệ thống phân cấp file vào bất kỳ lúc nào, bạn nhập lệnh pwd để in thư mục làm việc hiện tại.
$pwd /user0/home/amrood $
Liệt kê các thư mục trong Unix/Linux
Để liệt kê danh sách các thư mục, bạn có thể sử dụng cú pháp sau:
$ls dirname
Dưới đây là ví dụ để liệt kê tất cả file được chứa trong thư mục /usr/local.
$ls /usr/local X11 bin gimp jikes sbin ace doc include lib share atalk etc info man ami
Tạo các thư mục trong Unix/Linux
Các thư mục được tạo ra bằng lệnh sau:
$mkdir dirname
Tại đây, thư mục là pathname tuyệt đối hoặc quan hệ mà bạn muốn tạo ra. Ví dụ, lệnh sau:
$mkdir mydir $
Tạo thư mục mkdir trong thư mục hiện tại. Dưới đây là ví dụ:
$mkdir /tmp/test-dir $
Lệnh này tạo thư mục test-dir trong thư mục /tmp. Lệnh mkdir không tạo đầu ra nếu nó thành công tạo thư mục yêu cầu.
Nếu bạn cung cấp nhiều hơn một thư mục trên dòng lệnh thì mkdir tạo ra mỗi trong các thư mục. Ví dụ:
$mkdir docs pub $
Nó tạo ra thư mục docs và pub dưới thư mục hiện tại.
Tạo các thư mục cha (parent) trong Unix/Linux
Đôi khi bạn muốn tạo một thư mục, thư mục chính hoặc các thư mục của nó không tồn tại. Trong trường hợp này, lệnh mkdir đưa ra một thông báo lỗi như sau:
$mkdir /tmp/amrood/test mkdir: Failed to make directory "/tmp/amrood/test"; No such file or directory $
Trong trường hợp trên, bạn có thể chỉ định tùy chọn -p tới lệnh mkdir. Nó tạo tất cả các thư mục cần thiết cho bạn. Ví dụ:
$mkdir -p /tmp/amrood/test $
Lệnh trên tạo tất cả các thư mục chính cần thiết.
Xóa các thư mục trong Unix/Linux
Các thư mục có thể được xóa bằng cách sử dụng lệnh rmdir như sau:
$rmdir dirname $
Ghi chú: Để xóa một thư mục, bạn nên chắc chắn nó không còn chứa dữ liệu quan trọng nào, nghĩa là không có bất kỳ file hoặc thư mục phụ bên trong thư mục này.
Bạn có thể xóa nhiều thư mục tại cùng thời điểm như sau:
$rmdir dirname1 dirname2 dirname3 $
Lệnh trên xóa các thư mục dirname1, dirname2 và dirname3 nếu chúng là trống. Lệnh rmdir không tạo ra đầu ra nếu nó thực hiện thành công.
Thay đổi các thư mục trong Unix/Linux
Bạn có thể sử dụng lệnh cd để tạo nhiều thay đổi tới thư mục home. Bạn có thể sử dụng nó để thay đổi bất kỳ thư mục nào bằng cách xác định path tuyệt đối và quan hệ hợp lệ. Cú pháp như sau:
$cd dirname $
Tại đây, dirname là tên của thư mục mà bạn muốn tạo các thay đổi. Ví dụ, lệnh:
$cd /usr/local/bin $
Tạo thay đổi tới thư mục /usr/local/bin. Từ thư mục này bạn có thể cd thư mục /usr/home/amrood bằng cách sử dụng path quan hệ sau:
$cd ../../home/amrood $
Đặt lại tên các thư mục trong Unix/Linux
Lệnh mv có thể được sử dụng để đặt lại tên một thư mục. Cú pháp như sau:
$mv olddir newdir $
Bạn có thể đặt lại tên một thư mục mydir thành yourdir như sau:
$mv mydir yourdir $
Các thư mục .(dot) và .. (dot dot) trong Unix/Linux
Tên file là .(dot) biểu diễn thư mục làm việc hiện tại; và tên file là .. (dot dot) biểu diễn thư mục ở lớp trên thư mục làm việc hiện tại, thường là thư mục chính.
Nếu chúng ta nhập lệnh này để chỉ một danh sánh các thư mục làm việc hiện tại và sử dụng tùy chọn -a để liệt kê tất cả các file và tùy chọn -l cung cấp kiểu danh sách dài, điều này sẽ cho ra kết quả sau:
$ls -la drwxrwxr-x 4 teacher class 2048 Jul 16 17.56 . drwxr-xr-x 60 root 1536 Jul 13 14:18 .. ---------- 1 teacher class 4210 May 1 08:27 .profile -rwxr-xr-x 1 teacher class 1948 May 12 13:42 memo $
Loạt bài hướng dẫn học UNIX cơ bản và nâng cao của chúng tôi dựa trên nguồn tài liệu của: Tutorialspoint.com
Follow fanpage của team hoặc facebook cá nhân Nguyễn Thanh Tuyền để tiếp tục theo dõi các loạt bài mới nhất về Java,C,C++,Javascript,HTML,Python,Database,Mobile.... mới nhất của chúng tôi.
Các bài học UNIX phổ biến khác tại VietJack: