Linux

ls -d */ 適用於某些文件夾而不適用於其他文件夾

  • August 15, 2018

我在一個遠端伺服器上,它是一個 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

為什麼會這樣?我怎樣才能解決這個問題?

該目錄包含一個名為 的子目錄-,因此 shell 的擴展*/包括-/,這被誤解為命令選項。

--您可以通過使用ie顯式標記選項的結尾來避免這種情況

ls -d -- */

或通過在 glob 前面加上路徑

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

“-d”表示僅列出我理解的那個目錄。

引用自:https://unix.stackexchange.com/questions/462509