2013-02-17 50 views
1

問題開頭的所有目錄:LS發現以./

從你的home目錄內,執行LS操作顯示所有 目錄,以開展「」你不應該看到純文件,並且你不應該看到這些目錄的內容。例如:

〜$ LS _ __ _ _ ../ ./的.ssh/.ssh2目錄/ .sunw/.tin/

我跑

ls -R . -d | grep ./ 

,它似乎工作。

但是,當我運行ls -R . -d時,我注意到即使使用-d也列出了這些文件。爲什麼會發生?

+1

'ls -R。 -d'只給我''。 – Makoto 2013-02-17 01:53:25

+0

是不是應該遞歸搜索當前目錄並列出目錄? – user1431282 2013-02-17 01:54:17

+1

我不相信你需要在這裏遞歸。 – squiguy 2013-02-17 01:54:55

回答

4

我覺得你被要求出示所有的 「點」 目錄,即

ls -ad .*/ 
+0

謝謝你,似乎工作,但你怎麼找到'-ad'的標誌?我注意到它沒有出現在手冊頁中。 '-ad'代表什麼,爲什麼我的命令不正確地返回這麼多結果? – user1431282 2013-02-17 02:01:59

+1

'-ad'是兩個標誌:'-a'和'-d'。這相當於'ls -a -d。* /'但更短;-)儘管你不需要'-a',看到我的回答和解釋。 – janos 2013-02-17 02:03:56

2

(最短)的回答是:

ls -d .*/ 

因爲:

  • .*/所有以「。」開頭的目錄都是
  • -d是在年底沒有看到這些目錄

的內容沒有/,你會看到純文本文件,這將是錯誤的答案。

沒有-d標誌,你會看到目錄的內容,這將是錯誤的答案。

沒有其他標誌是必要的。