我在一台 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
该目录包含一个名为 的子目录-
,因此*/
shell 的扩展包括-/
,它被误解为命令选项。
--
您可以通过使用ie显式标记选项结尾来避免这种情况
ls -d -- */
或者在 glob 前面添加路径
ls -d ./*/
答案2
find . -maxdepth 1 -type d ! -name "\.*"
“-d”表示仅列出我所理解的目录。