`ls --directory`는 무엇을 의미합니까?


17

내 우분투 버전에서 man ls에는 --directory에 대한 다음 정보가 있습니다.

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

그래서 나는 그것이 어떻게 작동하는지 조금 혼란 스럽습니다. 나는 명령을 사용했고 ls --directory모든 디렉토리가있는 목록을 기대했지만 대신.

그래서 정확히 수행 ls --directory또는 ls -d합니까?

답변:


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

현재 디렉토리 가 나열되어 .있는 ls -d것으로 표시됩니다.

현재 디렉토리 내의 디렉토리는 디렉토리의 내용이므로이 옵션과 함께 표시되지 않습니다.

-d별명에있는 옵션을 사용하여 숨겨진 파일 및 디렉토리를 표시합니다.

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

이 없으면 -d숨겨진 디렉토리의 내용도 나열됩니다. 원하는 것이 아닙니다.

그것을 사용하는 또 다른 용도 -l는 내용이 아닌 옵션을 사용하여 디렉토리의 메타 데이터를보고 싶을 때입니다 .

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

현재 디렉토리에 디렉토리 목록이 필요하면

ls -d */

ls -dC .* --color디렉토리뿐만 아니라 숨겨진 파일도 나열합니다.
Pau Chorro

1
네 @ @PauChorro 실제로 내 대답에 그렇게 말합니다. 모든 숨겨진 파일과 디렉토리를 표시하는 데 사용합니다
Zanna

1
@PauChorro 나는 디렉토리 만 나열하는 방법을 추가했다
Zanna

1
내 우분투 버전 man ls에서 다음 정보가 list directory entries instead of contents, and do not derefer‐ ence symbolic links있습니다. 따라서 버전에는 실제로 수행하는 작업에 대한 더 나은 설명이 있습니다.
Pau Chorro

1
@ Pilot6 그것은 파일도 나열합니다
Zanna

11

lswith 만 사용 하는 -d것은 거의 쓸모가 없습니다. 디렉토리 자체에 대한 정보를 제공합니다. 내용을 나열하지 않습니다.

따라서 디렉토리 목록이 표시되지 않습니다. 예상 한 디렉토리는 현재 디렉토리의 "내용"입니다.

간단하게 실행하면로 ls -d현재 디렉토리가 표시됩니다 ..

와 같은 다른 키로 실행하는 것이 합리적 -l입니다.

ls -ld 현재 디렉토리의 권한을 보여줍니다.

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

당신은 또한 같은 다른 디렉토리의 권한을 볼 수 있습니다

ls -ld /bin

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

ls -l없이 실행 -d하면 현재 디렉토리의 파일 및 폴더에 대한 모든 권한 목록이 표시됩니다. 필요하지 않은 경우 ls -ld사용 하기에 좋은 예입니다 .

현재 디렉토리를 디렉토리별로 나열 할 수 있습니다.

ls -d */

6

ls -d매개 변수가 없으면 항상 반환하기 때문에 자체적으로 사용 하는 것은 상당히 쓸모가 없습니다 .. 매개 변수를 지정한 후에는 의미가 있습니다. 예를 들어, 사용자 이름이 rick있고 집에있는 모든 디렉토리를 보려면 다음을 수행하십시오.

$ 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

예를 들어 설명하겠습니다.

  1. ls: 디렉토리 내용 나열

  2. ls -d또는 ls --directory: 내용이 아닌 디렉토리 자체를 나열합니다.

예 :

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

귀하의 경우 ls -d이 목록에 말한다 단지 나에게 보여 내가 (즉,하지의 내용에서 오전 디렉토리 .결과가 있도록, 리눅스 용어를) ..

그러나 ls다음과 같이 말한 경우 현재 디렉토리에있는 모든 것을 볼 수 있습니다 ..


4

ls -d컨텐츠 대신 디렉토리 자체를 나열하십시오. 파일이 정상적으로 나열됩니다. 로 봐 man ls모든 옵션의 자체에 대한 설명입니다.

. 현재 디렉토리에서 명령을 실행할 때 사용하는 것과 동일한 자체 디렉토리입니다. ./runscript.sh

..cd ..디렉토리 계층에서 단계적으로 이동할 때 와 같이 상위 디렉토리, 현재 디렉터의 상위 디렉토리

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.