1. 程式人生 > >linux的ll之後欄位的含義以及如何修改檔案的屬主和使用者組

linux的ll之後欄位的含義以及如何修改檔案的屬主和使用者組

ls -l 列表資訊詳解

我們平時用ls -l 命令檢視一個目錄下的檔案和子目錄的詳悉資訊時,會得到一個詳細的檔案和目錄名列表.這個列表包含了檔案的屬性,所屬使用者,所屬組,建立時間,檔案大小等等資訊.這些資訊到底是什麼意思呢?有很多初學者對這些不太瞭解,因此想詳悉講解一下用ls -l命令得到的檔案列表每一個欄位的意思

以筆者電腦的/root目錄為例:

[[email protected] root]# ll

總用量 4055

-rw-r--r-- 1 root root 1581 11月 24 18:14 anaconda-ks.cfg

drwxr-xr-x 2 root root 208 12月 1 13:50 babylinux

-rw-r--r-- 1 root root 1474560 11月 25 15:02 babylinux.img

-rw-r--r-- 1 root root 26829 11月 25 15:10 babylinux.png

lrwxrwxrwx 1 root root 9 1月 4 11:06 disk1.link.png -> disk1.png

-rw-r--r-- 1 root root 3209 11月 26 12:07 disk1.png

-rw-r--r-- 1 root root 692 11月 26 13:16 disk2.png

-rw-r--r-- 1 root root 718 11月 26 13:30 disk3.png

drwx------ 8 root root 392 1月 4 08:40 evolution

-rwxr-xr-x 1 root root 13695 11月 30 16:51 fangkuai.sh

drwxr-xr-x 2 root root 208 12月 28 12:06 FreeBSD

-rw-r--r-- 1 root root 2315 11月 25 17:19 getMBR.png

brw-r----- 1 root root 3, 1 1月 4 11:06 hda1

drwxr-xr-x 2 root root 296 12月 31 11:53 htmls

-rw-r--r-- 1 root root 21369 11月 24 18:12 install.log

-rw-r--r-- 1 root root 3024 11月 24 18:12 install.log.syslog

-rw-r--r-- 1 root root 293 1月 4 10:51 ls.txt

-rw-r--r-- 1 root root 2237702 11月 25 15:09 magick.miff

-rw-r--r-- 1 root root 13493 11月 25 17:31 mbr1.png

-rw-r--r-- 1 root root 8123 11月 25 17:42 mbr2.png

-rw-r--r-- 1 root root 512 11月 30 16:10 mbr.dat

-rw-r--r-- 1 root root 64512 11月 26 15:33 partition.doc

-rw-r--r-- 1 root root 49887 11月 26 15:32 partition.sxw

-rw-r--r-- 1 root root 1541 12月 18 13:14 passwd

-rw-r--r-- 1 root root 46320 11月 25 17:28 Screenshot-1.png

-rw-r--r-- 1 root root 44145 11月 25 17:32 Screenshot-2.png

-rw-r--r-- 1 root root 43732 11月 25 17:13 Screenshot.png

drwxr-xr-x 3 root root 72 1月 4 10:49 test

-rw-r--r-- 1 root root 0 12月 18 10:44 tset

crw-r----- 1 root root 4, 65 1月 4 11:08 ttyS1

-rw-r--r-- 1 root root 9754 12月 1 11:25 X.sxw

-rw-r--r-- 1 root root 8704 11月 29 12:22 員工資訊.xls

-rw-r--r-- 1 root root 19456 11月 26 17:14 搬千計劃.xls

可以看到,用ls -l命令檢視某一個目錄會得到一個9個欄位的列表.

#######################

第1行:總用量(total)

#######################

這個數值是該目錄下所有檔案及目錄列表第5個欄位的和(以k為單位),也就是該目錄的大小.請注意和該目錄下的檔案和子目錄下檔案的總合做區分.這個數字和du /root 得到的數字的大小是不一樣的.可以用awk命令來驗證.

用awk累加第5欄位得到的數值:

[[email protected] root]# ls -l |awk 'BEGIN{sum=0}{sum+=$5}END{print sum}'

4104092

轉化成以K為單位:

[[email protected] root]# ls -l |awk 'BEGIN{sum=0}{sum+=$5}END{print sum/1024}'

4007.9

用ls -l得到的數值:

總用量 4055

用du -sh /root得到的數值:

[[email protected] root]# du -sh /root

127M /root

可以看到累加第5個欄位得到的值和total顯示的是一樣的(因為具體演算法的不同,略微有差別).得到的數值實際上是root目錄的大小(把root目錄看成是一個特殊的檔案,就可以理解什麼是目錄的大小).而用du得到的數值是root目錄下所由檔案和子目錄下全部檔案的大小的總合.

########################

第1欄位:

檔案屬性欄位

########################

檔案屬性欄位總共有10個字母組成,第一個字母表示檔案型別,如果這個字母是一個減號"-",則說明該檔案是一個普通檔案.字母"d"表示該檔案是一個目錄,字母"d",是dirtectory(目錄)的縮寫.請注意,一個目錄或者說一個資料夾是一個特殊檔案,這個特殊檔案存放的是其他檔案和資料夾的相關資訊.

如果該字母是"l",表示該檔案是一個符號連結.符號連結的概念類似於windows裡的快捷方式.字母"l"是link(連結)的縮寫.在UNIX類系統中,一個檔案可以有多個檔名,一個檔案的多個檔名之間互稱為硬連結(hard link).這些檔案頭可以指向同一個檔案,刪除其中一個檔名並不能刪除該檔案,只有把指向該檔案的所有硬連結都刪除,這個檔案所佔用的空間才真正被釋放,該檔案才真正被刪除.這和windows是有很大區別的,windows中不允許一個檔案有兩個以上檔名,如果存在這中情況,則被認為是檔案系統錯誤.如果你以前在windows下玩過DEBUG就知道,可以用DEBUG修改一張軟盤上的根目錄,使一個檔案同時具有兩個檔名.但是修改好後用 scandisk監測的時候會被認為是交叉連結錯誤.

開頭為b的表示塊裝置檔案(block),,裝置檔案是普通檔案和程式訪問硬體裝置的入口,是很特殊的檔案.它的沒有檔案大小,只有一個主裝置號和一個輔裝置號.上面的hda1就是一個裝置檔案,具有主裝置號3和輔裝置號1.表示第一個硬碟第一個分割槽.

另外,如果第一個字母為c表示該檔案是一個字元裝置檔案(character),一次傳輸一個位元組的裝置被稱為字元裝置,比如鍵盤,字元終端等,傳輸資料的最小單位為一個位元組.一次傳輸資料為一整塊的被稱為塊裝置,比如硬碟,光碟等.最小資料傳輸單位為一個數據塊(通常一個數據塊的大小是512位元組).

第一欄位的後面9個字母表示檔案的許可權.

r表是讀 (Read) w表示寫 (Write) x表示執行 (eXecute)

其中前三個表示檔案屬主的許可權,中間三個表示組使用者許可權,最後三個表示其他使用者許可權.

比如:

-rw-r--r-- 1 root root 1581 11月 24 18:14 anaconda-ks.cfg

表示檔案的擁有者root對檔案有讀寫許可權,其他人(同組使用者和其他使用者只有讀的許可權)

另外,許可權組還有一些特殊的表示法.比如/usr/X11R6/bin/XFree86具有如下許可權:

[[email protected] root]# ll /usr/X11R6/bin/XFree86

-rws--x--x 1 root root 1960262 2003-02-28 /usr/X11R6/bin/XFree86

其中的s表示這個是網路介面程式"s"是socket的縮寫.該程式在執行過程中會開啟一個網路介面.

其他UNIX類系統如FreeBSD中還有t許可權,表示一個臨時(temporary)檔案

在freeBSD中用ls -l /tmp 可以看到這樣的許可權:

drwxrwxrwt

它的最後一位是字母"t"

-rwx------: 檔案所有者對檔案具有讀取、寫入和執行的許可權。
-rwxr―r--: 檔案所有者具有讀、寫與執行的許可權,其他使用者則具有讀取的許可權。
-rw-rw-r-x: 檔案所有者與同組使用者對檔案具有讀寫的許可權,而其他使用者僅具有讀取和執行的許可權。
drwx--x--x: 目錄所有者具有讀寫與進入目錄的許可權,其他使用者近能進入該目錄,卻無法讀取任何資料。
Drwx------: 除了目錄所有者具有完整的許可權之外,其他使用者對該目錄完全沒有任何許可權。 

###############################

第2欄位

檔案硬連結數或目錄子目錄數

###############################

如果一個檔案不是目錄那麼這一欄位表示,這個檔案所具有的硬連結數,即這個檔案總共有多少個檔名.檢視第一個檔案:

-rw-r--r-- 1 root root 1581 11月 24 18:14 anaconda-ks.cfg

第2欄位的值為1,說明這個檔案只有anaconda-ks.cfg這一個檔名.即只有一個指向該連結的硬連結.

如果我用ln,做一個指向該檔案的硬連結再檢視該檔案,該檔案的第2欄位就會變成2:

[[email protected] root]# ln anaconda-ks.cfg anaconda-ks.cfg.hardlink

[[email protected] root]# ls -l

總用量 4071

-rw-r--r-- 2 root root 1581 11月 24 18:14 anaconda-ks.cfg

-rw-r--r-- 2 root root 1581 11月 24 18:14 anaconda-ks.cfg.hardlink

此時,anaconda-ks.cfg 和anaconda-ks.cfg.hardlink 稱為互為硬連結.他們指向同一個檔案,無論是修改哪一個檔案,另一個裡也做相應的變化,因為實際上他們指向同一個檔案.

用ls -i anaconda-ks.cfg可以檢視它的檔案節點(inode)

互為硬連結的檔案具有相同的檔案節點. 以下是驗證實驗:

[[email protected] root]# ls -i anaconda-ks.cfg

18102 anaconda-ks.cfg

[[email protected] root]# ls -i anaconda-ks.cfg.hardlink

18102 anaconda-ks.cfg.hardlink

可以看到,這兩個檔案具有相同的檔案節點號:18102

如果你知道一個檔案有多個檔名,如何查詢他的其他檔名分佈在什麼地方呢?

可以先用ls -i 獲得它的節點號,然後用find查詢,如/etc/sysconfig/networking/devices/ifcfg-eth0就具有多個檔名,我要查詢與它互為硬連結的檔案:

[[email protected] devices]# ls -i /etc/sysconfig/networking/devices/ifcfg-eth0

147181 /etc/sysconfig/networking/devices/ifcfg-eth0

得到它的節點號為 147181

再用find查詢:

[[email protected] devices]# find /etc -inum 147181

/etc/sysconfig/networking/devices/ifcfg-eth0

/etc/sysconfig/networking/profiles/default/ifcfg-eth0

這樣就得到了同一個檔案的不同檔名的位置.

*************************************

如果是一個目錄,第2欄位的含義:

**************************************

如果是一個目錄,則第2欄位表示該目錄所含子目錄的個數.

新建一個空目錄,這個目錄的第二欄位就是2,表示該目錄下有兩個子目錄.為什麼新建的目錄下面會有兩個子目錄呢?

因為每一個目錄都有一個指向它本身的子目錄"." 和指向它上級目錄的子目錄"..",這兩個預設子目錄是隱藏的.用ls -a可以看到.

每次在目錄下新建一個子目錄,該目錄第2欄位的值就增1,但是新建一個普通檔案該欄位值不增加.

###############################

第3欄位:

檔案擁有者

###############################

該欄位表示這個檔案是屬於哪個使用者的.UNIX類系統都是多使用者系統,每個檔案都有它的擁有者.只有檔案的擁有者才具有改動檔案屬性的權利.當然, root使用者具有改動任何檔案屬性的權利.對於一個目錄來說,只有擁有該目錄的使用者,或者具有寫許可權的使用者才有在目錄下建立檔案的權利.

如果某一個使用者因為某種原因,被刪除,而該使用者的檔案還存在,那麼用ls -l 檢視該檔案將顯示一個代表使用者存在前ID號的數字.

以下是演示:

先建立一個使用者並用su過去:

[[email protected] root]# useradd gucuiwen -g users

[[email protected] root]# su - gucuiwen

用新建的使用者建立一個測試檔案:

[gucu[email protected] gucuiwen]$ touch testfile

[[email protected] gucuiwen]$ ls -l testfile

-rw-r--r-- 1 gucuiwen users 0 1月 4 16:31 testfile

最後用ls -l 看到第三欄位的檔案擁有者為gucuiwen

然後我將gucuiwen使用者刪除:

[[email protected] root]# userdel gucuiwen

[[email protected] root]# cd /home/gucuiwen/

[[email protected] gucuiwen]# ls -l

總用量 0

-rw-r--r-- 1 501 users 0 1月 4 16:31 testfile

可以看到,第三欄位成了一個數字,這個數字是原gucuiwen使用者的ID號.因為檔案系統對每個檔案記錄檔案所有者的ID,而非使用者名稱.

###############################

第4欄位:

檔案擁有者所在的組

###############################

組的概念可以想像成是一個共同完成一個專案的團隊.通過組的概念,可以控制檔案讓特定的使用者檢視,修改或執行.而不是一棍子打死,要麼全不讓看,要麼全讓看.

一個使用者可以加入很多個組,但是其中有一個是主組,就是顯示在第4欄位的明稱.

可以在adduser的時候用-g指定該使用者所在的主組,用-G指定其他組.

##############################

第5欄位:

檔案檔案大小(以位元組為單位)

###############################

第5欄位表示檔案大小,如果是一個資料夾,則表示該資料夾的大小.請注意是資料夾本身的大小,而不是資料夾以及它下面的檔案的總大小!

很多人不能理解資料夾是一個特殊的檔案的含義,這樣的話理解資料夾大小的含義就比較困難了.

###############################

第6欄位:

檔案建立月份

###############################

這個不必多說了.

###############################

第7欄位:

檔案建立日期

###############################

###############################

第8欄位:

檔案建立時間

###############################

檔案建立的時間可以通過touch命令來修改.如:

#touch testfile

可以把testfile的建立時間修改為當前時間.

touch的詳細用法請看連結文件.

#man touch

另外,一個檔案還有最後訪問時間,最後修改時間等屬性.

這些屬性可以用ls 的其它引數顯示出來.

###############################

第9欄位:

檔名

###############################

如果是一個符號連結,那麼會有一個 "->" 箭頭符號,後面根一個它指向的檔名.

tar –cf 名字.tar 檔案 

再重新壓縮:tar –rf 名字.tar 檔案 

解壓縮命令:tar –xvf 名字.tar

修改使用者:chown username file

修改使用者組:chgrp grpname file

相關推薦

linux的ll之後含義以及如何修改檔案使用者

ls -l 列表資訊詳解 我們平時用ls -l 命令檢視一個目錄下的檔案和子目錄的詳悉資訊時,會得到一個詳細的檔案和目錄名列表.這個列表包含了檔案的屬性,所屬使用者,所屬組,建立時間,檔案大小等等資訊.這些資訊到底是什麼意思呢?有很多初學者對這些不太瞭解,因此想詳悉講解

Linux修改檔案所屬使用者使用者的命令

使用chown命令可以修改檔案或目錄所屬的使用者: 命令:chown 使用者 目錄或檔名 例如:chown jenkins /home/jenkins (把home目錄下

chown 更改檔案

1.作用 更改一個或多個檔案或目錄的屬主和屬組。使用許可權是超級使用者。 2.格式 chown [選項] 使用者或組 檔案 3.主要引數 –dereference:受影響的是符號連結所指示的物件,而非符號連結本身。 -h, –no-derefer

Linux 檢視以及修改檔案或資料夾的許可權

1. linux下修改檔案使用者組 chgrp: change group的簡寫,修改檔案所屬的使用者組。 chgrp users test.log 修改後檢視 ls -l -rwxrwx— 1 work users 0 Jun 8 15:46 test.log

批量xml格式檔案順序轉json檔案

環境:Eclipse4.4+jdk1.7+Maven3 參考連結:http://blog.csdn.net/jkxqj/article/details/76977280 根據需要略有改動。 package test; import java.io.BufferedReader; i

關於TP3.2框架讀取Sql server中文資料以及處理亂碼的一些小心得

最近要做一個專案,需要使用TP3.2框架,之前什麼也不會,就硬著頭皮上了,結果真的鬧了挺多emmmmmm挺低階的錯誤,就像SQL Server中文欄位的讀取,一開始我是照著讀取英文欄位的格式來寫的,在Model層裡 public function getAdminByUsername($userna

Scrapy框架中setting 中的含義

一、setting 自動生成的內容含義 # -*- coding: utf-8 -*- # Scrapy settings for taoCarTest project # # For simplicity, this file contains only settings consi

ps -ef |grep 含義

ps -ef |grep *** 欄位含義如下: UID PID PPID C STIME TTY TIME CMD zzw 14124 13991 0 00:38

python 讀取資料庫中的BLOB型別,並存儲檔案到本地

import os import cx_Oracle os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8' db_orcl = cx_Oracle.connect("使用者/[email protected]/orcl"

Linux 下 檢視以及修改檔案許可權

檢視許可權 在終端輸入: ls -l xxx.xxx (xxx.xxx是檔名) 那麼就會出現相類似的資訊,主要都是這些: -rw-rw-r--其中: 最前面那個 - 代表的是型別 中

Elasticsearch入門必備——ES中的型別以及常用屬性

使用Elasticsearch時,瞭解欄位的概念,是必不可少的。畢竟無論是es還是傳統的資料庫,都無法弱化欄位的型別。 背景知識 在Es中,欄位的型別很關鍵: 在索引的時候,如果欄位第一次出現,會自動識別某個型別,這種規則之前已經講過了。 那麼如果一個欄位已經存在了,並且設定為某個型別。再來一條資料,欄

Python+OGR庫學習(三):將含有值的TXT檔案寫入shpfile

程式碼任務 已知有一個TXT檔案,每行格式:country_name:X1 Y1,X2 Y2,…Xn,Yn,其中,Xn,Yn指折點座標,把它匯出為shp檔案,TXT如下: 程式碼思路 1、匯入相關庫包,切換到當前資料夾 2、註冊驅動,建立向量檔案,獲取圖層 3、建立輸出檔案

記錄:Mysql 修改長度、修改列名、新增列、修改自增鍵起始值

以下轉自https://www.cnblogs.com/yangjinwang/p/5918906.html alter table 表名 modify column 欄位名 型別; 例如 資料庫中user表 name欄位是varchar(30) 可以用 alter tab

elasticsearch建立multi-fields修改非multi-fields為multi-fields及multi-field的不同的analyzer進行分析搜尋

本文使用的elasticsearch是5.2.1,官方的multi-fields例子參見 https://www.elastic.co/guide/en/elasticsearch/reference/5.3/multi-fields.html 建立一個index及type

scrapy---setting的含義

# -*- coding: utf-8 -*- # Scrapy settings for lizi project # # For simplicity, this file contains only settings considered important or # commonly used.

Android中top命令含義

   68      0         0%      D               1           0K           0K         fg              root       COMIP Battery s   399    0         0%      S   

織夢新增自定義“附件” 如何修改超連結附件URL地址

問:我們經常碰到這樣的問題,用織夢做網站的時候,會經常要用到上傳附件,用於一些文件的下載等等,但是我們新增一個自定義欄位的時候,前臺會出現超連結地址是亂碼,其實我們只是想要 一個附件的URL。 解決方案: 當我們在系統內容模型中新增附件型別欄位時,前臺需要用

sql server2008給資料表,,新增修改註釋

 1、sqlserver用語句給表註釋 EXECUTE sp_addextendedproperty N'MS_Description', N'表註釋', N'user', N'dbo', N'table', N'表名', NULL, NULL 2、sqlserver用語句給表的“欄位”註釋 EXECUT

Linux系統 /etc/fstab各個含義解釋

 # fstab檔案的作用   檔案/etc/fstab存放的是系統中的檔案系統資訊。當正確的設定了該檔案,則可以通過"mount /directoryname"命令來載入一個檔案系統,每種檔案系統都對應一個獨立的行,每行中的欄位都有空格或tab鍵分開。同時fsck、 mou

關於odoo中__mainfest__.py含義、功能詳解

mainfest.py 注:本文摘自《odoo10.0官方文件》 翻譯:李海振 清單檔案用於將python包宣告為Odoo模組並指定模組元資料。 它是一個名為的檔案__manifest__.py,包含一個Python字典,其中每個鍵指定模組元資料。 可用的清