自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

幫你精通Linux:簡約卻不簡單的ls命令

系統(tǒng) Linux
ls 命令即 list directory contents是我們最為熟悉的Linux命令。它就如車載或者手機中的導航地圖,徹底解放了我們的大腦,片刻不能離身。否則我們下樓取個快遞,都得繞18道彎才能勉強找回家。

[[358957]]

 ls 命令即 list directory contents是我們最為熟悉的Linux命令。它就如車載或者手機中的導航地圖,徹底解放了我們的大腦,片刻不能離身。否則我們下樓取個快遞,都得繞18道彎才能勉強找回家。

我們在前面的“Linux手冊”課程中,大量應用ls這個地圖查看器。

1.只列出當前的目錄文件

我們先從一個具體的問題出發(fā),如何單單打印出目錄文件。

如果使用find命令,不僅簡單,而且符合完全語義化的表達:

  1. $ find . -maxdepth 1 -type d | head  
  2. ./Templates 
  3. ./.ssh 
  4. ./.tldr 
  5. ./.zoom 
  6. ./.presage 
  7. ./Videos 
  8. ./.racket 
  9. ./.mplayer 
  10. ./node_modules 

 我們甚至可以調用echo

  1. $ echo */ 
  2. anaconda3/ backup.doom.d/ Calibre Library/ Desktop/ Documents/ Downloads/ dwhelper/ emacs.d.backup2/ Mail/ Music/ News/ node_modules/ org/ Pictures/ Public/ snap/ Templates/ Test/ Videos/ 

 查閱手冊,我們會看到-d的選項:

  1. -d, --directory 
  2.              list directories themselves, not their contents 

 直接運行試試:

  1. $ ls -d . 
  2. .  # 只返回了一個當前目錄 

 改用通配符:

  1. $ ls -d */ 
  2.  anaconda3/          Downloads/         News/           snap/ 
  3.  backup.doom.d/      dwhelper/          node_modules/   Templates/ 
  4. 'Calibre Library/'   emacs.d.backup2/   org/            Test/ 
  5.  Desktop/            Mail/              Pictures/       Videos/ 
  6.  Documents/          Music/             Public

 如果將d去掉呢?

 

實際的執(zhí)行是將擴展的通配符的子目錄全部都列了出來。

2.只列出當前的文件

那么如何單單列出來當前的文件呢?最簡單的方法還是 find 命令的語義化查詢:

  1. $ find . -maxdepth 1 -type f -iname "[^.]*" |nl 
  2.      1  ./#*message*-20191127-125216# 
  3.      2  ./package-lock.json 
  4.      3  ./start.sh 
  5.      4  ./backup.gnus.el 
  6.      5  ./zero-config.el 
  7.      6  ./RMAIL 
  8.      7  ./linux-tutorial.org 
  9.      8  ./linux-tutorial-2.org 
  10.      9  ./*scratch* 

 我們知道ls命令有-F(filter)選項,將所有的文件歸類:

  1. $ ls -F  
  2.  anaconda3/                          News/ 
  3.  Anaconda3-2020.02-Linux-x86_64.sh   node_modules/ 
  4.  backup.doom.d/                      org/ 
  5.  backup.gnus.el                      package-lock.json 
  6. 'Calibre Library'/                   Pictures/ 
  7.  Desktop/                            Public
  8.  Documents/                          RMAIL 
  9.  Downloads/                         '*scratch*' 
  10.  dwhelper/                           snap/ 
  11.  emacs.d.backup2/                    start.sh* 
  12.  linux-tutorial-2.org                Templates/ 
  13.  linux-tutorial.org                  Test/ 
  14.  Mail/                               Videos/ 
  15. '#*message*-20191127-125216#'        zero-config.el 
  16.  Music/ 

 于是我們考慮使用組合命令:

  1. $ ls -F |grep .*[^/]$ |nl 
  2.      1  backup.gnus.el 
  3.      2  linux-tutorial-2.org 
  4.      3  linux-tutorial.org 
  5.      4  #*message*-20191127-125216# 
  6.      5  package-lock.json 
  7.      6  RMAIL 
  8.      7  *scratch* 
  9.      8  start.sh* 
  10.      9  zero-config.el 

 或者:

  1. $ ls -l |grep ^- |nl 
  2.      1  -rw-rw-r--  1 gaowei gaowei   6042 Feb  4 21:23 backup.gnus.el 
  3.      2  -rw-rw-r--  2 gaowei gaowei    892 May 26 08:34 linux-tutorial-2.org 
  4.      3  -rw-rw-r--  2 gaowei gaowei    892 May 26 08:34 linux-tutorial.org 
  5.      4  -rw-rw-r--  1 gaowei gaowei    139 Nov 27  2019 #*message*-20191127-125216# 
  6.      5  -rw-rw-r--  1 gaowei gaowei    313 Dec 10  2019 package-lock.json 
  7.      6  -rw-rw-r--  1 gaowei gaowei  74109 Mar 17 14:27 RMAIL 
  8.      7  -rw-rw-r--  1 gaowei gaowei    497 Dec  5  2019 *scratch* 
  9.      8  -rwxr-xr-x  1 gaowei gaowei   1793 May  7 06:20 start.sh 
  10.      9  -rw-rw-r--  1 gaowei gaowei   1058 Mar 30 17:10 zero-config.el 

 至此我們可以得出結論,ls并沒有直接列出全部文件的方案。

3.列出指定類型文件

雖然沒有列出全部文件的方法,然而我們卻可以打印指定suffix的文件:

  1. $ ls *.org # org 文件 
  2. linux-tutorial-2.org  linux-tutorial.org 
  3. $ ls *.sh # shell文件 
  4. start.sh 

 而且可以講二者組合: 

  1. $ ls *.{org,sh} 
  2. linux-tutorial-2.org  linux-tutorial.org  start.sh 

 4.無處不在的排序

排序無處不在,兩個小學生考試也要排排名次。

我們首先想到的是sort命令。

  1. $ ls -lh | sort -k 5 -h |head 
  2. total 320K 
  3. -rw-rw-r--  1 gaowei gaowei  139 Nov 27  2019 #*message*-20191127-125216# 
  4. -rw-rw-r--  1 gaowei gaowei  313 Dec 10  2019 package-lock.json 
  5. -rw-rw-r--  1 gaowei gaowei  497 Dec  5  2019 *scratch* 
  6. -rw-rw-r--  2 gaowei gaowei  892 May 26 08:34 linux-tutorial-2.org 
  7. -rw-rw-r--  2 gaowei gaowei  892 May 26 08:34 linux-tutorial.org 
  8. -rw-rw-r--  1 gaowei gaowei 1.1K Mar 30 17:10 zero-config.el 
  9. -rwxr-xr-x  1 gaowei gaowei 1.8K May  7 06:20 start.sh 
  10. drwx------  5 gaowei gaowei 4.0K Feb  4 21:32 Mail 
  11. drwxrwxr-x 10 gaowei gaowei 4.0K Mar 19 17:46 emacs.d.backup2 

 頗為驚喜的是,ls 貼心的準備了 -S 選項,并且,更為貼心的是輸出的結果是倒序排列。

  1. $ ls -lhS |head 
  2. total 320K 
  3. drwxr-xr-x 13 gaowei gaowei 100K Jun 22 15:02 Downloads 
  4. -rw-rw-r--  1 gaowei gaowei  73K Mar 17 14:27 RMAIL 
  5. drwxr-xr-x  8 gaowei gaowei  20K Jun 23 20:01 Videos 
  6. drwxr-xr-x  3 gaowei gaowei  12K Apr 28 04:50 Desktop 
  7. drwxr-xr-x  7 gaowei gaowei  12K Jun 20 21:15 Pictures 
  8. -rw-rw-r--  1 gaowei gaowei 6.0K Feb  4 21:23 backup.gnus.el 
  9. drwxrwxr-x 26 gaowei gaowei 4.0K Jun 16 09:02 anaconda3 
  10. drwxrwxr-x  2 gaowei gaowei 4.0K Jan 27 13:11 backup.doom.d 
  11. drwxrwxr-x  6 gaowei gaowei 4.0K Feb 21 16:17 Calibre Library 

 -S 是長選項--sort的短寫形式,除了按文件大小排序,也可以按照時間排序等

  1. $ ls -lh --sort=time  |head #簡寫為 ls -ht 
  2. total 320K 
  3. drwxr-xr-x  8 gaowei gaowei  20K Jun 23 20:01 Videos 
  4. drwxr-xr-x 13 gaowei gaowei 100K Jun 22 15:02 Downloads 
  5. drwxr-xr-x  7 gaowei gaowei  12K Jun 20 21:15 Pictures 
  6. drwxrwxr-x 26 gaowei gaowei 4.0K Jun 16 09:02 anaconda3 
  7. drwxr-xr-x  4 gaowei gaowei 4.0K Jun 15 18:01 snap 
  8. drwxr-xr-x 15 gaowei gaowei 4.0K Jun  2 10:53 Documents 
  9. drwxrwxr-x  2 gaowei gaowei 4.0K May 26 10:50 Test 
  10. -rw-rw-r--  2 gaowei gaowei  892 May 26 08:34 linux-tutorial-2.org 
  11. -rw-rw-r--  2 gaowei gaowei  892 May 26 08:34 linux-tutorial.org 

 5.極簡模式

有時候,我們閱讀-l選項下的結果,眼花繚亂,頭暈目眩。此時可以嘗試極簡模式:

  1. $ ls -sS 

 

絕大部分時間,我們更關注的是文件的大小,-s, --size正提供這樣的服務。

6.收尾總結

總結上述的方法:

  1. # 1.只列出目錄 
  2. ls -d */ 
  3. # 2.只列出文件 
  4. ls *.{txt,pdf,org} 
  5. # 3.文件大小排序 
  6. ls -lhS 
  7. # 4.時間戳排序 
  8. ls -lht 
  9. # 5.極簡模式 
  10. ls -Ss 

 以上本文收尾,盼對大家有點滴幫助。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2013-06-04 17:10:00

Linux命令

2009-07-20 10:06:47

虛擬化思杰操作系統(tǒng)

2019-07-29 19:30:54

Linux命令ls命令

2011-12-28 15:11:09

iOS推薦

2014-08-21 10:14:09

APP界面設計移動客戶端

2012-10-18 13:26:03

多米音樂華為

2015-01-12 10:28:58

移動開發(fā)框架LettuceMobile Fram

2015-01-12 12:10:11

移動開發(fā)框架LettuceMobile Fram

2010-08-06 09:07:23

FlexFlex開源項目

2025-01-15 15:30:26

2011-04-29 15:04:16

惠普OMNI100

2012-05-08 16:27:07

烏邦果

2010-06-07 14:54:30

惠普迷你工作站評測

2010-12-02 17:48:02

Windows Pho

2012-04-13 10:16:32

2020-12-17 08:14:30

Linuxrsync備份

2011-05-07 10:25:26

佳能MP498一體機評測

2009-09-28 11:21:17

Linux教程ls命令Linux

2014-12-19 10:07:10

C

2023-10-09 07:33:50

Linuxls 命令
點贊
收藏

51CTO技術棧公眾號