ls -d */ 일부 폴더에서는 작동하지만 다른 폴더에서는 작동하지 않습니다.

ls -d */ 일부 폴더에서는 작동하지만 다른 폴더에서는 작동하지 않습니다.

저는 Ubuntu 16.04.1 LTS 원격 서버를 사용하고 있으며 "NewsData"라는 이 폴더의 디렉터리를 나열하면 됩니다. 이 명령은 ls -d */폴더를 나열하는 데 좋은 명령이지만 일부 폴더에서는 유효하지만 다른 폴더에서는 유효하지 않습니다. .

다음은 샘플 출력입니다.

(venv_p3.5) anjali@momo:/scratche/home/anjali$ ls -d */
archive/  DownloadImages/  fixed/  getNews/  html/  log/  MonumentData/  NewsData/  Pytorch-finetuning/  src/  TestData/  TrainData/  TrainData2/  venv_p3.5/  VGG16FeatureExtraction/
(venv_p3.5) anjali@momo:/scratche/home/anjali$ cd NewsData/
(venv_p3.5) anjali@momo:/scratche/home/anjali/NewsData$ ls -d */
ls: invalid option -- '/'
Try 'ls --help' for more information.
(venv_p3.5) anjali@momo:/scratche/home/anjali/NewsData$ ls 
-  A  B  C  cleanData.py  D  E  F  G  getList.py  H  I  J  K  L  M  N  O  P  Q  R  S  sequentialNumbering.sh  T  U  V  W  Y  Z

왜 이런 일이 발생합니까? 이 문제를 어떻게 해결할 수 있나요?

답변1

디렉토리에는 이라는 하위 디렉토리가 포함되어 있으므로 -*/의 확장자에는 -/명령 옵션으로 잘못 해석되는 가 포함됩니다.

--즉, 다음을 사용하여 옵션의 끝을 명시적으로 표시하면 이를 방지할 수 있습니다.

ls -d -- */

또는 glob 앞에 경로를 추가하십시오.

ls -d ./*/

답변2

find . -maxdepth 1 -type d ! -name "\.*"

"-d"는 내가 이해하는 디렉토리만 나열한다는 의미입니다.

관련 정보