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

该目录包含一个名为 的子目录-,因此*/shell 的扩展包括-/,它被误解为命令选项。

--您可以通过使用ie显式标记选项结尾来避免这种情况

ls -d -- */

或者在 glob 前面添加路径

ls -d ./*/

答案2

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

“-d”表示仅列出我所理解的目录。

相关内容