Unix / Linux - Quản lý thư mục

Trong chương này, chúng ta sẽ thảo luận chi tiết về quản lý thư mục trong Unix.

Thư mục là một tệp, công việc đơn lẻ của nó là lưu trữ tên tệp và thông tin liên quan. Tất cả các tệp, dù là thông thường, đặc biệt hay thư mục, đều được chứa trong các thư mục.

Unix sử dụng cấu trúc phân cấp để tổ chức các tệp và thư mục. Cấu trúc này thường được gọi là cây thư mục. Cây có một nút gốc duy nhất, ký tự gạch chéo (/), và tất cả các thư mục khác được chứa bên dưới nó.

Thư mục Trang chủ

Thư mục mà bạn tự tìm thấy khi đăng nhập lần đầu được gọi là thư mục chính của bạn.

Bạn sẽ thực hiện nhiều công việc của mình trong thư mục chính và các thư mục con mà bạn sẽ tạo để sắp xếp các tệp của mình.

Bạn có thể truy cập vào thư mục chính của mình bất cứ lúc nào bằng lệnh sau:

$cd ~
$

Đây ~cho biết thư mục chính. Giả sử bạn phải truy cập vào thư mục chính của bất kỳ người dùng nào khác, hãy sử dụng lệnh sau:

$cd ~username
$

Để chuyển đến thư mục cuối cùng của bạn, bạn có thể sử dụng lệnh sau:

$cd -
$

Tên đường dẫn tuyệt đối / tương đối

Các thư mục được sắp xếp theo hệ thống phân cấp với root (/) ở trên cùng. Vị trí của bất kỳ tệp nào trong hệ thống phân cấp được mô tả bằng tên đường dẫn của nó.

Các phần tử của tên đường dẫn được phân tách bằng dấu /. Tên đường dẫn là tuyệt đối, nếu nó được mô tả liên quan đến gốc, do đó tên đường dẫn tuyệt đối luôn bắt đầu bằng a /.

Sau đây là một số ví dụ về tên tệp tuyệt đối.

/etc/passwd
/users/sjones/chem/notes
/dev/rdsk/Os3

Tên đường dẫn cũng có thể liên quan đến thư mục làm việc hiện tại của bạn. Tên đường dẫn tương đối không bao giờ bắt đầu bằng /. Liên quan đến thư mục chính của người dùng amrood, một số tên đường dẫn có thể trông như thế này -

chem/notes
personal/res

Để xác định vị trí của bạn trong phân cấp hệ thống tệp bất kỳ lúc nào, hãy nhập lệnh pwd để in thư mục làm việc hiện tại -

$pwd
/user0/home/amrood

$

Danh sách thư mục

Để liệt kê các tệp trong một thư mục, bạn có thể sử dụng cú pháp sau:

$ls dirname

Sau đây là ví dụ để liệt kê tất cả các tệp có trong /usr/local thư mục -

$ls /usr/local

X11       bin          gimp       jikes       sbin
ace       doc          include    lib         share
atalk     etc          info       man         ami

Tạo thư mục

Bây giờ chúng ta sẽ hiểu cách tạo thư mục. Các thư mục được tạo bằng lệnh sau:

$mkdir dirname

Ở đây, thư mục là tên đường dẫn tuyệt đối hoặc tương đối của thư mục bạn muốn tạo. Ví dụ, lệnh -

$mkdir mydir
$

Tạo thư mục mydirtrong thư mục hiện tại. Đây là một ví dụ khác -

$mkdir /tmp/test-dir
$

Lệnh này tạo thư mục test-dir bên trong /tmpdanh mục. Cácmkdir lệnh không tạo ra đầu ra nếu nó tạo thành công thư mục đượ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, mkdirtạo từng thư mục. Ví dụ, -

$mkdir docs pub
$

Tạo tài liệu thư mục và xuất bản trong thư mục hiện tại.

Tạo thư mục chính

Bây giờ chúng ta sẽ hiểu cách tạo thư mục mẹ. Đôi khi khi bạn muốn tạo một thư mục, thư mục mẹ hoặc các thư mục của nó có thể không tồn tại. Trong trường hợp này,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 những trường hợp như vậy, bạn có thể chỉ định -p tùy chọn cho mkdirchỉ huy. Nó tạo ra 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 mẹ được yêu cầu.

Xóa thư mục

Thư mục có thể bị xóa bằng cách sử dụng rmdir lệnh như sau:

$rmdir dirname
$

Note - Để xóa một thư mục, hãy đảm bảo rằng nó trống, nghĩa là không được có bất kỳ tệp hoặc thư mục con nào bên trong thư mục này.

Bạn có thể xóa nhiều thư mục cùng một lúc như sau:

$rmdir dirname1 dirname2 dirname3
$

Lệnh trên loại bỏ các thư mục dirname1, dirname2 và dirname3, nếu chúng trống. Cácrmdir lệnh không tạo ra đầu ra nếu nó thành công.

Thay đổi thư mục

Bạn có thể dùng cdlệnh để làm nhiều việc hơn là chỉ thay đổi thành thư mục chính. Bạn có thể sử dụng nó để thay đổi thành bất kỳ thư mục nào bằng cách chỉ định một đường dẫn tuyệt đối hoặc tương đối hợp lệ. Cú pháp như sau:

$cd dirname
$

Đây, dirnamelà tên của thư mục mà bạn muốn thay đổi. Ví dụ, lệnh -

$cd /usr/local/bin
$

Các thay đổi đối với thư mục /usr/local/bin. Từ thư mục này, bạn có thểcd vào thư mục /usr/home/amrood sử dụng đường dẫn tương đối sau:

$cd ../../home/amrood
$

Đổi tên thư mục

Các mv (move)lệnh cũng có thể được sử dụng để đổi tên một thư mục. Cú pháp như sau:

$mv olddir newdir
$

Bạn có thể đổi tên một thư mục mydir đến yourdir như sau -

$mv mydir yourdir
$

Các thư mục. (chấm) và .. (chấm chấm)

Các filename .(dấu chấm) đại diện cho thư mục làm việc hiện tại; vàfilename .. (dấu chấm) đại diện cho thư mục cao hơn một cấp so với thư mục đang làm việc hiện tại, thường được gọi là thư mục mẹ.

Nếu chúng ta nhập lệnh để hiển thị danh sách các thư mục / tệp đang hoạt động hiện tại và sử dụng -a option liệt kê tất cả các tệp và -l option để cung cấp danh sách dài, chúng tôi sẽ nhận được 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
$