저는 Linux를 처음 접했습니다. ls
명령 없이 매개변수와 함께 디렉터리의 모든 파일을 나열하는 Linux 명령을 구현하라는 요청을 받았습니다 -R
.
다음 명령을 시도했습니다.
dir -R
첫 번째 수준뿐만 아니라 모든 하위 디렉터리도 표시되는 것으로 나타났습니다.
이것을 달성할 수 있는 방법이 있나요? 내가 아는 한 -R
모든 하위 디렉터리는 나열되어야 하지만 첫 번째 수준만 나열하면 됩니다.
답변1
dir
또는 설명서 에 따르면 ls
:
-R, --재귀
하위 디렉터리를 재귀적으로 나열
이 플래그를 사용하면 -R
모든 파일과 디렉터리가 반복적으로 표시됩니다.
~처럼바 바 1234find
깊이 매개변수를 지정하려면 명령을 사용하는 것이 좋습니다 . 또 다른 방법은 (인쇄 디렉토리만) 및 (최대 레벨 깊이)를 tree
사용하는 것입니다.-d
-L
tree -L 1 -d
출력 예:
.
├── dir1
├── dir2
├── dir3
-R
첫 번째 수준 디렉터리만 나열하는 플래그가 포함된 명령을 원하는 경우 find
다음을 사용하여 직접 빌드할 수 있습니다.
if [ -z "$1" ]; then
find .
elif [ "$1" = "-R" ]; then
find . -type d -maxdepth 1
fi
답변2
노력하다
find . -maxdepth 1 | sort
분명히 깊이 매개변수를 사용하면 원하는 만큼 트리에 깊이 들어갈 수 있으며 -type d
디렉터리만 표시 또는 -type f
파일만 표시와 같은 스위치를 추가하면 출력 범위를 더 좁히는 데 도움이 됩니다.
답변3
배시 사용:
shopt -s globstar
printf "%s\n" **
숨겨진 파일과 디렉토리를 표시하려면 다음을 추가하십시오.
shopt -s dotglob
인용하다:내장 매장설명서에