저는 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"는 내가 이해하는 디렉토리만 나열한다는 의미입니다.