`Ls --directory` có nghĩa là gì?


16

Trong phiên bản Ubuntu của tôi, người đàn ông ls có thông tin tiếp theo về --directory:

list directory entries instead of contents, and do not dereference symbolic links

Vì vậy, tôi có một chút bối rối làm thế nào nó hoạt động. Tôi đã sử dụng lệnh ls --directoryvà tôi mong đợi một danh sách với tất cả các thư mục nhưng thay vào đó tôi đã nhận được.

Vì vậy, chính xác những gì làm ls --directoryhoặc ls -dlàm?

Câu trả lời:


24
$ man ls
...
-d, --directory
              list directories themselves, not their contents

Thư mục hiện tại được thể hiện như .vậy đó là những gì ls -dđược liệt kê.

Các thư mục bên trong thư mục hiện tại là nội dung của thư mục và do đó không được hiển thị với tùy chọn này.

Tôi sử dụng -dtùy chọn trong một bí danh để hiển thị các tập tin và thư mục ẩn

alias l.='ls -dC .* --color'

Nếu không -d, điều này cũng sẽ liệt kê ra nội dung của các thư mục ẩn, đây không phải là điều tôi muốn.

Một cách sử dụng khác là khi tôi muốn xem siêu dữ liệu của một thư mục bằng cách sử dụng -ltùy chọn, không phải nội dung của nó:

$ ls -ld playground
drwxr-xr-x 72 zanna zanna 12288 Mar  1 23:10 playground

Nếu bạn muốn một danh sách các thư mục trong thư mục hiện tại, bạn có thể sử dụng

ls -d */

ls -dC .* --colorcũng liệt kê các tập tin ẩn không chỉ thư mục.
Pau Chorro

1
có @PauChorro Tôi thực sự nói điều đó trong câu trả lời của tôi. Tôi sử dụng nó để hiển thị tất cả các tập tin và thư mục ẩn
Zanna

1
@PauChorro Tôi đã thêm một cách để liệt kê các thư mục
Zanna

1
Trong phiên bản Ubuntu của tôi, man lscó thông tin tiếp theo : list directory entries instead of contents, and do not derefer‐ ence symbolic links. Vì vậy, trong phiên bản của bạn là một lời giải thích tốt hơn về những gì nó thực sự làm.
Pau Chorro

1
@ Pilot6 nó cũng sẽ liệt kê các tập tin
Zanna

11

lsChỉ sử dụng với -dgần như vô dụng. Nó cung cấp thông tin về chính thư mục. Nó không liệt kê nội dung của nó.

Đó là lý do tại sao bạn không thấy một danh sách các thư mục. Các thư mục mà bạn muốn thấy là "nội dung" của thư mục hiện tại

Nếu bạn chạy đơn giản, ls -dnó sẽ hiển thị thư mục hiện tại ..

Nếu có ý nghĩa để chạy nó với các phím khác như -l.

ls -ld sẽ hiển thị quyền của thư mục hiện tại.

pilot6@Pilot6:~$ ls -ld
drwxrwxr-x 1 pilot6 pilot6 2570 Mar  4 12:14 .

Bạn cũng có thể thấy quyền của bất kỳ thư mục nào khác như

ls -ld /bin

pilot6@Pilot6:~$ ls -ld /bin
drwxr-xr-x 1 root root 2584 Feb 25 15:19 /bin

Nếu bạn chạy ls -lmà không có -dbạn sẽ có danh sách tất cả các quyền cho các tệp và thư mục trong thư mục hiện tại. Nếu bạn không cần nó, đó là một ví dụ tốt cho ls -ldviệc sử dụng.

Bạn có thể liệt kê các thư mục trong thư mục hiện tại

ls -d */

6

Sử dụng ls -dchính nó là khá vô dụng vì không có tham số, nó luôn trả về .. Sau khi bạn chỉ định một tham số, nó có ý nghĩa mặc dù. Ví dụ: nếu tên người dùng của bạn là rickvà bạn muốn xem tất cả các thư mục trong nhà bạn sử dụng:

$ ls -d /home/rick/*/
/home/rick/AAC/        /home/rick/EnhanceIO/         /home/rick/silentcast/
/home/rick/assembly/   /home/rick/EnhanceIO-master/  /home/rick/Templates/
/home/rick/bin/        /home/rick/log/               /home/rick/test/
/home/rick/Desktop/    /home/rick/Music/             /home/rick/tmpe/
/home/rick/Documents/  /home/rick/Pictures/          /home/rick/Videos/
/home/rick/Downloads/  /home/rick/Public/

5

Hãy để tôi giải thích với các ví dụ:

  1. ls: liệt kê nội dung của một thư mục

  2. ls -dhoặc ls --directory: tự liệt kê các thư mục, không phải nội dung của chúng

Ví dụ:

ls -d android-sdk-linux/

# result
android-sdk-linux/

ls android-sdk-linux/

# result
add-ons  build-tools  platforms  platform-tools  SDK Readme.txt  temp  tools

Trường hợp của ls -dbạn nói rằng danh sách này chỉ hiển thị cho tôi thư mục tôi không có nội dung của nó (tức là .theo thuật ngữ Linux), vì vậy kết quả là : ..

Nhưng nếu bạn đã nói : ls, thì bạn sẽ thấy tất cả những gì có trong thư mục hiện tại ..


4

ls -dliệt kê các thư mục họ tự thay vì nội dung của họ. Các tập tin được liệt kê như bình thường. Nhìn vào man lsđể mô tả tất cả các tùy chọn.

. là thư mục tự nó, giống như bạn sử dụng khi chạy lệnh từ thư mục hiện tại, ./runscript.sh

..là thư mục cha, cha mẹ đến trực tiếp hiện tại, như cd ..để di chuyển ở bước lên trong thư mục

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.