Files

ls 和實際文件大小,不使用“長列表格式”

  • February 9, 2022

Linuxls命令帶有這些選項。

  --block-size=SIZE
         scale sizes by SIZE before printing them; e.g., '--block-size=M' prints sizes in units of  1,048,576  bytes;  see
         SIZE format below


  -l     use a long listing format

         list subdirectories recursively

  -s, --size
         print the allocated size of each file, in blocks

我認為這ls -l是實際文件大小,ls -s --block-size=1是分配給儲存文件的磁碟空間量。(在這種情況下,991232 = 968x1024 = 968K。)

$ ls -s --block-size=1  summary.pdf 
991232 summary.pdf
$ ls -l summary.pdf 
-rwxrwx---. 1 chris chris 989838 May  1  2015 summary.pdf

是否可以在沒有“長列表格式”的附加資訊的情況下以字節為單位獲取文件大小?

您可以使用stat自定義格式。

stat -c'%s' summary.pdf 

將以字節為單位輸出實際文件大小。如果要分配塊,請使用分配的塊%b數和%B每個塊的塊大小(以字節為單位)。

這也適用於萬用字元和附加%n的文件名。有關更多格式選項,請參見手冊頁。

如果你想要一種只顯示大小和文件名的替代ls格式,這個 hack 就可以了。

ls -l | sed "s/  */ /g" | cut -d ' ' -f 5,9-

或許:

alias size_plus_name="sed 's/  */ /g' | cut -d ' ' -f 5,9-"
ls -l | size_plus_name

ls以這種方式與任何開關或命令行參數一起使用。不要忘記包括-l.

*注意力!*這僅適用於文件名不包含任何空格的情況。

但是,5-9-(而不是5-9)嘗試處理包含 wsp 的文件名。

(參見下面@Scott 的評論)

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