07/05/2018, 14:59

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:

0