Dù ít được biết đến hơn so với lệnh ls nhưng dir vẫn cung cấp nhiều tính năng hữu ích cho việc liệt kê và quản lý nội dung thư mục. Trong bài viết này, Vietnix sẽ cùng bạn khám phá chi tiết về lệnh dir trong Linux, từ cú pháp, các tùy chọn và 4 nhóm ví dụ về cách sử dụng.
Lệnh dir trong Linux là gì?
Lệnh dir trong Linux là công cụ quản lý, hỗ trợ người dùng khả năng xem nội dung, sắp xếp các file, thư mục và thực hiện các thao tác trên hệ thống dễ dàng. Với cú pháp đơn giản, lệnh dir không chỉ giúp người dùng thao tác hiệu quả với cấu trúc folder, mà còn giúp truy cập thông tin nhanh chóng và thuận tiện hơn.
Lệnh dir được xem là một trong các câu lệnh trong Linux cơ bản với tính năng đặc trưng. Bạn có thể sử dụng dòng lệnh trên nhiều phiên bản của hệ điều hành Linux như Ubuntu. Nắm bắt được cách sử dụng của dòng lệnh sẽ giúp bạn nâng cao năng suất và hiệu quả trong quá trình thực hiện lệnh.
Cú pháp cơ bản của lệnh dir
Cú pháp của lệnh dir thường tuân theo dạng sau:
dir [Option] [Directory]
Trong đó:
- Option: Là các tùy chọn (flags) hoặc tham số mà bạn có thể sử dụng để thay đổi cách hoạt động của lệnh dir.
- Directory: Đây là đường dẫn đến folder mà bạn muốn truy xuất thông tin. Nếu bạn không đang ở trong folder đó, bạn có thể nhập đường dẫn đầy đủ của folder mà không cần phải chuyển đến folder đó trước.
Các tùy chọn của lệnh dir
Lệnh dir không phải là công cụ có sẵn trong Linux, nên để hiểu rõ hơn về cách sử dụng, bạn nên tham khảo trang tài liệu (man page) kèm theo. Để xem hướng dẫn chi tiết, bạn hãy nhập lệnh man sau vào terminal:
man dir
Tùy chọn | Chức năng |
---|---|
-l | Hiển thị danh sách liệt kê với định dạng dài, cung cấp thông tin chi tiết về các file. |
-s -l | Sắp xếp và liệt kê các file theo kích thước. |
-t -l | Sắp xếp và liệt kê các file theo thời gian sửa đổi. |
-a hoặc --all / -al | Liệt kê tất cả các file, bao gồm các file ẩn bắt đầu bằng “.” |
-A hoặc --almost-all | Liệt kê tất cả các file trừ “.” và “..”, đại diện cho folder hiện tại và folder cha. |
-d */ | Liệt kê chỉ các folder, không bao gồm các file. |
--author (-l --author) | Hiển thị tác giả của các file khi có sẵn. |
-B hoặc --ignore-backups | Bỏ qua các file sao lưu kết thúc bằng “~”. |
--color | Cho phép xuất kết quả output có màu để người dùng có thể dễ đọc hơn. |
-F hoặc --classify (--file-type) | Thêm chỉ báo vào tên file để chỉ ra loại của chúng (ví dụ: “/” cho folder). |
--format=WORD | Tùy chỉnh định dạng output bằng cách sử dụng định dạng từ đã chỉ định. |
--hide=PATTERN/ --ignore=PATTERN | Tùy chỉnh định dạng output bằng cách sử dụng mẫu từ đã chỉ định. WORD có thể nhận các giá trị sau: across (-x), commas (-m), horizontal (-x), long (-l), single-column (-1), verbose (-l), vertical (-C). |
-n hoặc --numeric-uid-gid | Hiển thị ID người dùng và nhóm dưới dạng số thay vì tên. |
-r hoặc --reverse | Liệt kê các mục theo thứ tự ngược lại. |
-R hoặc --recursive | Liệt kê các thư mục con theo cách đệ quy. |
--sort=PARAMETER | Chỉ định tham số để sắp xếp output. PARAMETER (Tham số) có thể nhận các giá trị sau: none (-U), size (-S), time (-t), version (-v), extension (-X). |
--help | Hiển thị thông tin và tùy chọn sử dụng. |
--version | Hiển thị thông tin phiên bản. |
-h -l | Liệt kê kích thước file theo định dạng dễ đọc cho con người. |
-i hoặc --inode | Hiển thị số inode hoặc số chỉ mục của các file. |
-g , -gG | -g liệt kê các file mà không có chủ sở hữu của chúng và -G liệt kê các file mà không có chủ nhóm của chúng. |
-l --group-directories-first | Liệt kê các folder trước trong output, trước các file. |
So sánh giữa 2 dòng lệnh dir và lệnh ls
So sánh | Lệnh dir | Lệnh ls |
---|---|---|
Điểm giống nhau | Liệt kê nội dung của các thư mục. | |
Điểm khác nhau | Sắp xếp đầu ra theo cột, sắp xếp dọc. | Có thể sắp xếp theo nhiều tùy chọn khác nhau. |
Sử dụng chuỗi thoát dấu gạch chéo cho ký tự đặc biệt. | Không sử dụng chuỗi thoát dấu gạch chéo cho ký tự đặc biệt. | |
Không hiển thị output màu. | Hiển thị output màu (theo tùy chỉnh). | |
Chỉ có sẵn trên một số bản phân phối Linux như Ubuntu. | Có mặt trên hầu hết các hệ điều hành giống Unix. | |
Không phổ biến và có thể không khả dụng trên các hệ thống khác. | Được sử dụng rộng rãi và phổ biến. |
4 nhóm ví dụ về sử dụng lệnh dir trong Linux
Ví dụ 1: Liệt kê nội dung các file và folder
Liệt kê nội dung thư mục là chức năng chính của lệnh dir. Lệnh này cung cấp nhiều tùy chọn linh hoạt, cho phép bạn tùy chỉnh quá trình liệt kê theo ý muốn. Dưới đây là một số tùy chọn hữu ích mà Vietnix đã tổng hợp cùng với các trường hợp sử dụng tương ứng.
- Liệt kê các file và folder trong thư mục hiện tại
Để liệt kê toàn bộ file và folder trong thư mục hiện tại, bạn chỉ cần nhập lệnh dir
mà không cần kèm theo bất kỳ đối số nào. Sau khi chạy xong lệnh, màn hình sẽ hiển thị output là tất cả nội dung của thư mục hiện tại, ngoại trừ các file đã bị ẩn.
- Liệt kê các file và folder thông qua đường dẫn xác định
Để liệt kê tất cả các file và thư mục của bất kỳ folder nào trong hệ thống khi bạn đang làm việc trong một thư mục khác thì bạn có thể sử dụng cú pháp:
dir [directory_path]
Ví dụ, để hiển thị tất cả nội dung của thư mục Desktop khi đang ở trong thư mục Home, bạn chỉ cần chạy lệnh sau:
dir /home/soumik/Desktop
Và đây là kết quả trả về sau khi lệnh chạy xong.
- Liệt kê các file với thông tin chi tiết
Trường hợp bạn muốn liệt kê tất cả nội dung của một thư mục bao gồm thông tin chi tiết, quyền truy cập, chủ sở hữu và nhóm, kích thước file, thời gian sửa đổi,…. Bạn có thể chạy lệnh sau:
dir -l
Dưới đây sẽ là kết quả sau chạy xong câu lệnh phía trên, như bạn có thể thấy thì màn hình hiển thị danh sách các file và thư mục trên màn hình, bao gồm thông tin chi tiết như quyền truy cập, chủ sở hữu, kích thước, và ngày giờ tạo/sửa đổi của từng file hay folder.
- Hiển thị thông tin chi tiết các file theo thứ tự
Bạn cần liệt kê tất cả nội dung của một thư mục và sắp xếp chúng theo một tham số tùy chỉnh, thì bạn có thể sử dụng câu lệnh này:
dir -l --sort=PARAMETER
Một số tham số (parameter) sắp xếp thông dụng có thể kể đến như: none (-U
), size (-S
), time (-t
), version (-v
), extension (-X
),…
Ví dụ, ở đây bạn muốn sắp xếp nội dung của thư mục hiện tại theo thời gian nên cú pháp sẽ nhập là: dir -l --sort=time
. Sau khi lệnh chạy xong, màn hình sẽ hiển thị tệp và thư mục trong folder ~/Desktop và sắp xếp theo thời gian sửa đổi (từ mới nhất đến cũ nhất).
- Liệt kê và làm nổi bật nội dung bằng cách đổi màu
Mặc định, lệnh dir không phân biệt màu sắc giữa thư mục và file như lệnh ls. Tuy nhiên, nếu bạn muốn làm nổi bật các thư mục bằng cách thay đổi màu sắc hiển thị như lệnh ls, bạn có thể sử dụng cú pháp sau:
dir --color
Hình dưới đây là kết quả sau khi chạy xong lệnh, bạn có thể thấy các thư mục như hello, world, và New Folder được tô màu xanh dương còn các file như animals, colors, prices.txt, animals_colors, file.txt, và script_file.dc vẫn giữ màu mặc định (trắng). Điều này giúp bạn dễ dàng nhận biết các folder và file với nhau.
- Liệt kê toàn bộ vị trí các file
Lệnh dir theo mặc định không liệt kê các nội dung ẩn bên trong một thư mục. Nếu bạn muốn các file ẩn cũng được bao gồm trong danh sách, hãy chạy lệnh sau:
dir -a
Nếu bạn muốn liệt kê các file ẩn nhưng không hiển thị các thư mục ‘.’ (thư mục hiện tại) và ‘..’ (thư mục cha) thì bạn có thể sử dụng câu lệnh sau:
dir -A
Từ ví dụ dưới đây, bạn có thể thực hiện hai lệnh khác nhau để liệt kê các file và thư mục trong thư mục ~/Desktop.
- Lệnh
dir -a
: Hiển thị tất cả các tệp và thư mục, bao gồm cả các tệp ẩn. Kết quả bao gồm cả hai thư mục ẩn là ‘.’ và ‘..’. - Lệnh
dir -A
: Cũng hiển thị các tệp và thư mục, bao gồm cả tệp ẩn, nhưng không bao gồm hai thư mục ‘.’ và ‘..’.
- Liệt kê nội dung với các ký hiệu loại file
Lệnh dir sử dụng một số ký tự đặc biệt để chỉ ra loại nội dung. Bạn có thể theo dõi bảng dưới đây để biết công dụng của các ký tự đó.
Ký hiệu | Ý nghĩa |
---|---|
/ | Chỉ ra một thư mục. |
* | Chỉ ra một tệp để thực hiện |
@ | Chỉ ra một liên kết tượng trưng (symbolic link). |
% | Chỉ ra một tệp trắng (whiteout). |
= | Chỉ ra một socket. |
| | Chỉ ra một FIFO (First In, First Out). |
Để hiển thị nội dung của thư mục làm việc cùng với các ký hiệu chỉ loại tệp, hãy chạy lệnh sau:
dir -F
Chẳng hạn như ví dụ dưới đây, bạn có thể thực hiện lệnh liệt kê các tệp và thư mục trong thư mục ~/Desktop, đồng thời hiển thị các ký hiệu chỉ loại tệp ở bên phải tên của chúng.
- Các thư mục như New Folder, hello, và world được đánh dấu bằng ký hiệu “/” – Dấu hiệu để bạn biết đây là các folder
- Còn các file như animals, animals_colors, colors, file.txt, prices.txt, và script_file.dc không có ký hiệu đặc biệt.
- Liệt kê chi tiết file theo định dạng chi tiết dễ đọc
Trên thực tế, bạn đã quen với các đơn vị lớn như kilobyte (KB), megabyte (MB), hoặc gigabyte (GB) nên việc các file hiển thị ở đơn vị byte có thể gây ra chút khó khăn trong việc xác định kích thước file. Vì thế, nhằm giúp bạn dễ dàng nắm bắt kích thước tệp và mức sử dụng tài nguyên thì bạn có thể dùng lệnh sau:
dir -h -l
Như bạn có thể thấy ở ví dụ bên dưới, Vietnix đã sử dụng lệnh này liệt kê các tệp và thư mục trong thư mục ~/Desktop với chi tiết kích thước tệp được hiển thị ở định dạng dễ đọc, chuyển đổi từ byte sang các đơn vị lớn hơn như kilobyte (KB).
- Wildcards – hiển thị các folder bằng ký tự đại diện
Lệnh dir trong Linux không có sẵn tùy chọn để chỉ hiển thị thư mục, nhưng bạn có thể dễ dàng làm điều này bằng cách sử dụng ký tự đại diện (wildcards). Thao tác thực hiện cũng khá dễ dàng, bạn chỉ cần nhập cú pháp sau:
dir -d */
Như bạn có thể thấy ở ví dụ bên dưới, sau khi lệnh chạy xong thì kết quả hiển thị các thư mục như hello/, New Folder/, và world/, mà không liệt kê các file khác. Với ký tự đại diện */ để chỉ hiển thị các mục là thư mục trong folder làm việc hiện tại.
- Index node number – liệt kê nội dung file/folder với số thứ tự
Số inode viết tắt của index node number là một định danh duy nhất mà hệ thống tệp trên Unix gán cho mỗi file hoặc thư mục. Số inode hoạt động như một chìa khóa giúp hệ thống tìm kiếm và truy cập các khối dữ liệu (thành phần file được lưu trên ổ cứng) và siêu dữ liệu ( tên file , kích thước, ngày tạo,…) liên quan đến file hoặc thư mục đó.
Trong Linux, bạn có thể sử dụng lệnh dir -i
hoặc dir --inode
để hiển thị số inode của các file và thư mục trong thư mục hiện tại. Ví dụ, bạn có thể chạy lệnh sau để xem số inode:
dir -i
Sau khi lệnh chạy xong, màn hình đã hiển thị, liệt kê các tệp và thư mục trong thư mục ~/Desktop, đồng thời hiển thị số inode tương ứng với mỗi file và thư mục. Ví dụ, file animals có số inode là 533705, thư mục hello có số inode là 533734.
- Liệt kê nội dung các file và thư mục không có chủ sở hữu
Nếu bạn muốn liệt kê các file và thư mục với thông tin chi tiết nhưng không cần hiển thị tên chủ sở hữu, hãy sử dụng lệnh:
dir -g
Lệnh này sẽ chỉ hiển thị tên nhóm chủ sở hữu của từng nội dung. Nhưng trong trường hợp nếu bạn muốn ẩn luôn cả tên nhóm chủ sở hữu, hãy dùng lệnh:
dir -gG
Đến đây, bạn đã thực hiện hai dòng lệnh khác nhau để liệt kê tệp và thư mục trong thư mục ~/Desktop:
- Lệnh
dir -g
: Lệnh này hiển thị danh sách các tệp và thư mục với thông tin chi tiết, nhưng không hiển thị tên của chủ sở hữu (owner). Thay vào đó, chỉ có tên của nhóm (group) được hiển thị. Ví dụ: Trong kết quả hiển thị, bạn chỉ thấy tên nhóm “soumik” thay vì cả tên chủ sở hữu và nhóm. - Lệnh
dir -gG
: Lệnh này ẩn cả tên chủ sở hữu và tên nhóm, chỉ để lại các thông tin khác như quyền truy cập, kích thước, ngày giờ, và tên tệp hoặc thư mục.
- Liệt kê các folder trước những người dùng khác
Để liệt kê các thư mục trước nhiều người dùng khác trong thư mục làm việc, bạn có thể sử dụng cú pháp sau:
dir -l --group-directories-first
Lệnh này sẽ sắp xếp các thư mục lên đầu danh sách, sau đó mới đến các file khác. Ở ví dụ bên dưới, bạn sẽ thấy các thư mục hello, New Folder, và world được liệt kê trước tiên, trong khi các như animals, animals_colors, colors, và những file khác xuất hiện sau đó.
- Liệt kê nội dung theo thứ tự ngược lại
Theo mặc định, lệnh dir liệt kê các nội dung của thư mục làm việc theo thứ tự bảng chữ cái từ A-Z. Trong trường hợp, nếu bạn muốn thay đổi thứ tự và hiển thị kết quả theo thứ tự ngược lại (từ Z-A) thì có thể chạy cú pháp sau:
dir -r
Sau khi chạy xong lệnh, màn hình sẽ liệt kê các tệp và thư mục trong thư mục ~/Desktop được sắp xếp theo thứ tự ngược lại của bảng chữ cái (từ Z đến A). Ví dụ này hiển thị world xuất hiện đầu tiên, tiếp theo là New Folder, colors, và tiếp tục đến các tệp khác như animals_colors, animals.
- Liệt kê ID người dùng và nội dung nhóm
Nếu bạn muốn liệt kê các ID người dùng và nhóm cùng với các nội dung, thay vì tên người dùng và nhóm thì bạn có thể chạy lệnh sau:
dir -n
Theo ví dụ bên dưới, lệnh này liệt kê các tệp và thư mục trong thư mục ~/Desktop với thông tin chi tiết, nhưng thay vì hiển thị tên người dùng và tên nhóm, lệnh này hiển thị ID số của người dùng và nhóm. Theo kết quả trên màn hình thì bạn có thể thấy các ID số 1000 cho cả người dùng và nhóm, thay vì tên chủ sở hữu và nhóm thông thường. Điều này xảy ra khi người dùng sử dụng lệnh dir -n
, giúp hiển thị thông tin dưới dạng số thay vì tên.
- Liệt kê nội dung danh sách file bao gồm tác giả
Mặc định, lệnh dir không hiển thị tên tác giả của các file. Tên chủ sở hữu thường là tên tài khoản người dùng (user) sở hữu file, trong khi tên tác giả thường là người đã tạo ra nội dung của file. Để hiển thị danh sách các file với tên tác giả cùng với tên chủ sở hữu và nhóm, bạn có thể sử dụng lệnh sau:
dir -l --author
Tuy nhiên, nếu bạn chỉ muốn hiển thị tên tác giả mà không cần thông tin về chủ sở hữu và nhóm, bạn có thể sử dụng lệnh dir -author
.
Với việc chạy lệnh dir -l --author
sẽ liệt kê toàn bộ các tệp và thư mục trong thư mục ~/Desktop với thông tin chi tiết bao gồm tên chủ sở hữu (owner), nhóm (group), và tác giả (author).
- Cột 3: Hiển thị tên chủ sở hữu (owners) của hoặc thư mục.
- Cột 4: Hiển thị tên nhóm (groups) mà file hoặc thư mục thuộc về.
- Cột 5: Hiển thị tên tác giả (authors) của file hoặc thư mục.
Như bạn có thể thấy ở output thì tất cả các cột này đều có giá trị “soumik“, cho biết rằng người sở hữu, nhóm, và tác giả đều là cùng một người hoặc tài khoản.
Ví dụ 2: Thay đổi định dạng output mặc định
Mặc định, lệnh dir hiển thị kết quả theo định dạng ngang. Bạn có thể điều chỉnh kiểu hiển thị này bằng tùy chọn --format=WORD
. Các tùy chọn WORD tương ứng với -x
, -m
, -x
, -l
, -1
, -l
, và -C
để hiển thị theo các định dạng như “across”, “commas”, “horizontal”, “long”, “single-column”, “verbose”, và “vertical”.
Ví dụ, để hiển thị kết quả theo định dạng một cột, bạn có thể sử dụng lệnh sau:
dir --format=single-column
Kết quả hiển thị sau khi bạn thực hiện lệnh dir --format=single-column
thì các file và thư mục trên một dòng riêng biệt, tạo thành một danh sách theo chiều dọc thay vì chiều ngang như mặc định.
Ví dụ 3: Xem chi tiết nội dung đệ quy
Xem nội dung đệ quy (tự xem chính nội dung của chính nó) là quá trình kiểm tra toàn diện các file và thư mục trong thư mục hiện tại, bao gồm cả những thư mục con và tất cả các file nằm bên trong. Để thực hiện điều này, bạn có thể sử dụng cú pháp sau:
dir -R
Dưới đây là cách bạn có thể thực hiện lệnh trên, kết quả hiển thị ra màn hình tất cả các file và folder trong thư mục ~/Desktop, đồng thời thể hiện một cách rõ ràng cho thấy các file, folder lồng ghép. Kết quả giúp bạn dễ dàng thấy được toàn bộ cấu trúc thư mục và file từ thư mục gốc cho đến các thư mục con và file bên trong.
- Thư mục hello chứa file hello there.
- Thư mục world chứa thư mục con our world, và bên trong đó có thêm tệp hoặc thư mục khác.
Ví dụ 4: Bỏ qua nội dung của các mẫu liệt kê cụ thể
Nếu bạn muốn bỏ qua hoặc ẩn một số nội dung cụ thể khi liệt kê các file và thư mục bằng lệnh dir, bạn có thể sử dụng tùy chọn để bỏ qua các file theo mẫu nhất định. Ví dụ: Trong trường hợp nếu bạn muốn bỏ qua tất cả các file có đuôi .txt trong thư mục làm việc hiện tại, bạn có thể sử dụng một trong hai lệnh sau:
dir --ignore=*.txt
Hoặc
dir --hide=*.txt
Như bạn có thể thấy ở output bên dưới thì cả hai lệnh trên đều có chức năng tương tự nhau và cho ra kết quả giống nhau.
Câu hỏi thường gặp
Có thể sử dụng lệnh dir
để hiển thị nội dung của một thư mục ẩn không?
Câu trả lời là không. Để liệt kê chi tiết file/folder trên hệ thống Linux bạn cần sử dụng lệnh ls.
Có thể hiển thị kích thước của các file theo đơn vị MB hoặc GB bằng lệnh dir không?
Câu trả lời là không. Lệnh dir
là một lệnh của hệ điều hành Windows, không tồn tại trong môi trường Linux. Bạn hãy liệt kê nội dung của thư mục bằng lệnh ls
.
Lời kết
Mong rằng qua những chia sẻ, 4 nhóm ví dụ về cách sử dụng lệnh dir bài viết trên đã giúp bạn hiểu rõ hơn về cách tối ưu hóa quá trình làm việc của mình trong môi trường Linux. Nếu bạn có bất cứ vấn đề gì thắc mắc hay cần sự giúp đỡ thì đừng ngần ngại để lại bình luận phía bên dưới để Vietnix có thể hỗ trợ bạn. Chúc bạn thành công!