文件管理

文件名命名規(guī)則

  1. 文件名大小寫敏感
  2. 文件名可以使用除/以外的任意字符
  3. 文件名長(zhǎng)度不能超過255字符
  4. 以.開頭的文件為隱藏文件

常見目錄的作用

/boot:?jiǎn)?dòng)相關(guān)的內(nèi)核和grub文件
/bin:可執(zhí)行的二進(jìn)制文件
/sbin:只有root才能執(zhí)行的二進(jìn)制文件
/lib:庫文件
/lib64:64位庫文件
/home/username:普通用戶家目錄
/root:管理員的家目錄
/media:便攜式移動(dòng)設(shè)備掛載點(diǎn)
/mnt:臨時(shí)文件系統(tǒng)的掛載點(diǎn)
/etc:目錄存放著各種系統(tǒng)配置文件
/dev:設(shè)備文件存放目錄
/srv:系統(tǒng)上運(yùn)行的服務(wù)用到的數(shù)據(jù)
/tmp:臨時(shí)目錄
/usr:存放軟件的執(zhí)行程序岔激、庫文件及文檔
/var:存放軟件可變的數(shù)據(jù)
/proc:內(nèi)核與存放進(jìn)程信息的虛擬文件系統(tǒng)
/sys:存放硬件信息的虛擬文件系統(tǒng)

/usr

/usr/bin:保證系統(tǒng)擁有完整功能而提供的程序谢鹊,在centos7中,/bin就是指向這里
/usr/sbin:管理員能夠用的程序
usr/lib:32位程序用到的庫
/usr/lib64:64位程序用到的庫
/usr/include:C程序的頭文件
/usr/share:結(jié)構(gòu)化獨(dú)立的數(shù)據(jù)双谆,列入doc和man
/usr/local:第三方程序的安裝位置

/var

/var/cache:應(yīng)用程序緩存數(shù)據(jù)的目錄
/var/lib:應(yīng)用程序狀態(tài)信息數(shù)據(jù)
/var/local:專用于/usr/local的程序存儲(chǔ)可變的數(shù)據(jù)
/var/lock:鎖文件
/var/log:日志文件
/var/opt:專用戶/opt下的應(yīng)用程序存儲(chǔ)可變的數(shù)據(jù)
/var/run:運(yùn)行中的進(jìn)程相關(guān)數(shù)據(jù)返干,通常用戶存儲(chǔ)進(jìn)程PID文件
/var/spool:應(yīng)用程序數(shù)據(jù)池
/var/tmp:保存系統(tǒng)兩次重啟之間產(chǎn)生的臨時(shí)數(shù)據(jù)

Linux下的文件類型

-:普通文件
d:目錄文件
b:塊設(shè)備
c:字符設(shè)備
l:符號(hào)鏈接文件
p:管道文件pipe
s:套接字文件socket

pwd

顯示當(dāng)前位置的絕對(duì)路徑兴枯,常用選項(xiàng):

  • -P:如果當(dāng)前位置為軟連接目錄,則顯示源路徑
  • -L:和pwd一樣矩欠,默認(rèn)顯示當(dāng)前位置絕對(duì)路徑

basename

取出基名

[root@centos7 ~]# basename '/etc/sysconfig/network-scripts/ifcfg-eth0'
ifcfg-eth0

dirname

取出目錄名

[root@centos7 ~]# dirname '/etc/sysconfig/network-scripts/ifcfg-eth0'
/etc/sysconfig/network-scripts

cd

進(jìn)入指定目錄财剖,常用選項(xiàng):

  • ..:進(jìn)入當(dāng)前所在位置的上一級(jí)目錄
  • -:進(jìn)入上一次的目錄,重復(fù)調(diào)用會(huì)在兩個(gè)目錄中來回切換

ls

列出目錄內(nèi)容癌淮,常用選項(xiàng):

  • -a:顯示所有的文件峰伙,包括隱藏的文件
  • -A:顯示所有的文件,包括隱藏的文件该默,但是不包括.和..
  • -l:長(zhǎng)列出瞳氓,顯示屬性信息
  • -d:不顯示子文件和子目錄的信息
  • -R:遞歸顯示
  • -1:以一列的方式顯示
  • -S:按文件大小從大到小排序
  • -t:默認(rèn)以修改時(shí)間從新到舊排列,而如果使用–time=atime或者–time=ctime栓袖,則以指定的時(shí)間顯示匣摘,–time=atime可以使用-utl來替代
  • -rS:按文件大小從小到大排序
  • -rt:按時(shí)間從舊到新排序
  • -X:按文件的后綴名排序
  • -i:顯示文件的inode號(hào)
  • -Z:顯示文件的context標(biāo)簽

查看文件狀態(tài)

stat filename

查看文件的三個(gè)時(shí)間戳,還可以通過ls --time=atime/--time=ctime來查看

[root@centos6 ~]# stat /etc/sysconfig/network-scripts/ifcfg-eth0
  File: `/etc/sysconfig/network-scripts/ifcfg-eth0'
  Size: 231         Blocks: 8          IO Block: 4096   regular file
Device: 802h/2050d  Inode: 393227      Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2018-05-18 14:11:53.672274700 +0800
Modify: 2018-05-16 05:35:31.131999975 +0800
Change: 2018-05-16 06:15:15.794999624 +0800

時(shí)間戳

access time(atime):訪問時(shí)間
modify time(mtime):數(shù)據(jù)修改時(shí)間
change time(ctime) :元數(shù)據(jù)修改時(shí)間

touch

若文件不存在裹刮,則創(chuàng)建一個(gè)空文件音榜;若文件存在,則更新三個(gè)時(shí)間戳捧弃,常用選項(xiàng):

  • -a:更新atime和ctime
  • -m:更新mtime和ctime
  • -c:若文件存在赠叼,則更新三個(gè)時(shí)間戳,若不存在违霞,則不做任何操作

文件通配符

*:零個(gè)或多個(gè)字符
?:任意單個(gè)字符
~:當(dāng)前用戶家目錄
~J :用戶J家目錄
~+:當(dāng)前工作目錄
~- :前一個(gè)工作目錄
0-9:任意數(shù)字
a-Z:任意大小寫字母
^:取反
[:digit:]:任意數(shù)字
[:lower:] :任意小寫字母
[:upper:]:任意大寫字母
[:alpha:]:任意大小寫字母
[:alnum:]:任意數(shù)字或字母
[:blank:]:水平空白字符
[:space:]:水平或垂直空白字符
[:punct:] :標(biāo)點(diǎn)符號(hào)
[:print:]:可打印字符
[:cntrl:]:控制(非打幼彀臁)字符
[:graph:] :圖形字符
[:xdigit:]:十六進(jìn)制字符

# 只顯示/etc下的非隱藏目錄
[root@centos6 ~]# ls -d /etc/*/
/etc/abrt/               /etc/oddjob/
/etc/acpi/               /etc/oddjobd.conf.d/
/etc/alsa/               /etc/openldap/
/etc/alternatives/       /etc/opt/
/etc/audisp/             /etc/PackageKit/
/etc/audit/              /etc/pam.d/

練習(xí)

  1. 顯示/etc目錄下所有以k開頭,以一個(gè)小寫字母結(jié)尾买鸽,且中間出現(xiàn)至少一位數(shù)字的文件或目錄

    [root@centos6 ~]# ls /etc/k*[[:digit:]]*[[:lower:]]
    
  2. 顯示/proc目錄下名字由任意三位數(shù)字組成的文件或目錄

    [root@centos6 ~]# ls -d /proc/[[:digit:]][[:digit:]][[:digit:]]
    
  3. 顯示/var/log目錄下文件名包含符號(hào)及數(shù)字的文件或目錄

    [root@centos6 ~]# ls /var/log/*[[:punct:][:digit:]]*
    
  4. 顯示/usr/share/man目錄下所有以m開頭涧郊,以一個(gè)數(shù)字和x結(jié)尾的文件或目錄

    [root@centos6 ~]# ls -d /usr/share/man/m*[[:digit:]x]
    
  5. 顯示/etc目錄下,所有以一個(gè)大寫字母開頭眼五,以兩個(gè)數(shù)字結(jié)尾的文件或目錄

    [root@centos6 ~]# ls -d /etc/[[:upper:]]*[[:digit:]][[:digit:]]
    
  6. 顯示/etc目錄下妆艘,文件名至少包含一個(gè)小寫字母和一個(gè)數(shù)字并以.conf結(jié)尾的文件或目錄

    [root@centos6 ~]# ls /etc/*[[:lower:]]*[[:digit:]]*.conf
    
  7. 只顯示用戶家目錄下的非隱藏目錄

    [root@centos6 ~]# ls -d ~/
    

復(fù)制文件和目錄

源\目標(biāo) 不存在 存在且為文件 存在且為目錄
一個(gè)文件 新建同名文件并填充內(nèi)容 覆蓋內(nèi)容 在目錄下新建同名文件并填充內(nèi)容
多個(gè)文件 提示錯(cuò)誤 提示錯(cuò)誤 在目錄下新建同名文件并填充內(nèi)容
目錄(配合-r選項(xiàng)) 新建同名目錄和目錄下的文件并填充內(nèi)容 提示錯(cuò)誤 在目錄下新建同名文件并填充內(nèi)容

cp

復(fù)制文件或目錄彤灶,常用選項(xiàng):

  • -i:覆蓋時(shí)提示
  • -r:遞歸復(fù)制,可以復(fù)制目錄
  • -d:默認(rèn)不加-d時(shí)批旺,cp復(fù)制軟連接時(shí)會(huì)將源復(fù)制過去幌陕,加上-d保留鏈接屬性,把軟連接復(fù)制過去
  • --preserv=
    • mode:權(quán)限不變
    • owner[skip]:權(quán)限及owner汽煮,group不變
    • time:三個(gè)時(shí)間戳不變
    • xattr:acl權(quán)限不變
    • links:鏈接不變
    • context:文件的selinux上下文關(guān)系不變
    • all:所有不變
  • -p:相當(dāng)于--preserv=mode搏熄,owner,time
  • -a:cp -dr --preserv=all
  • -v:顯示復(fù)制過程
  • -f:強(qiáng)制覆蓋
  • -u:只覆蓋比目標(biāo)文件新的文件逗物,相當(dāng)于更新文件
  • –backup=numbered:覆蓋前,將舊文件名的后綴改為.n這種格式

練習(xí)

  1. 定義別名命令baketc瑟俭,將/etc/目錄下所有文件翎卓,備份到/testdir獨(dú)立的子目錄下,并要求子目錄格式為backupYYYY-mm-dd摆寄,備份過程可見

    [root@centos7 ~]# alias baketc='cp -av /etc/* /testdir/backup$(date '+%F')/'
    
  2. 創(chuàng)建/testdir/rootdir目錄失暴,并復(fù)制/root下所有文件到該目錄內(nèi),要求保留原有權(quán)限

    [root@centos7 ~]# cp -a /root/* /testdir/rootdir/
    

mv

移動(dòng)和重命名文件微饥,常用選項(xiàng):

  • -i:覆蓋時(shí)提示
  • -f:強(qiáng)制覆蓋逗扒,不提示

rename

重命名文件,可以批量重命名

[root@centos7 app]$ ls
1.txt  2.txt  3.txt  4.txt  5.txt  6.txt  7.txt  8.txt
[root@centos7 app]$ rename txt mp3 *.txt
[root@centos7 app]$ ls
1.mp3  2.mp3  3.mp3  4.mp3  5.mp3  6.mp3  7.mp3  8.mp3

rm

刪除文件欠橘,常用選項(xiàng):

  • -i:刪除時(shí)提示
  • -f:強(qiáng)制刪除矩肩,不提示
  • -r:遞歸刪除,用來刪除目錄肃续,通常配合-f來直接刪除目錄及目錄下的所有文件和目錄
[root@centos7 ~]# ls /testdir/rootdir/
anaconda-ks.cfg  initial-setup-ks.cfg
[root@centos7 ~]# rm -rf /testdir/rootdir/
[root@centos7 ~]# ls /testdir/rootdir/
ls: cannot access /testdir/rootdir/: No such file or directory

tree

目錄操作黍檩,常用選項(xiàng):

  • -d:只顯示目錄
  • -L level:顯示指定目錄的級(jí)數(shù)
  • -P pattern:只顯示由指定pattern匹配到的路徑
[root@centos7 boot]# tree -d
.
├── efi
│   └── EFI
│       └── centos
├── grub
└── grub2
    ├── fonts
    ├── i386-pc
    └── locale

8 directories
[root@centos7 boot]# tree -L
tree: Missing argument to -L option.
[root@centos7 boot]# tree -L 1
.
├── config-3.10.0-862.el7.x86_64
├── efi
├── grub
├── grub2
├── initramfs-0-rescue-93cbf5565a95463486f2d96ceb77d275.img
├── initramfs-3.10.0-862.el7.x86_64.img
├── symvers-3.10.0-862.el7.x86_64.gz
├── System.map-3.10.0-862.el7.x86_64
├── vmlinuz-0-rescue-93cbf5565a95463486f2d96ceb77d275
└── vmlinuz-3.10.0-862.el7.x86_64

3 directories, 7 files
[root@centos7 boot]# tree -Ld 1
.
├── efi
├── grub
└── grub2

3 directories

mkdir

創(chuàng)建目錄,常用選項(xiàng):

  • -p:可以同時(shí)創(chuàng)建多級(jí)目錄
  • -v:顯示創(chuàng)建的信息
  • -m:創(chuàng)建同時(shí)指定目錄的權(quán)限
[root@centos7 testdir]# mkdir a/b
mkdir: cannot create directory ‘a(chǎn)/b’: No such file or directory
[root@centos7 testdir]# mkdir -p a/b
[root@centos7 testdir]# tree
.
└── a
    └── b

2 directories, 0 files

rmdir

刪除空目錄始锚,常用選項(xiàng):

  • -p:遞歸刪除空目錄

練習(xí)

  1. 如何創(chuàng)建/testdir/dir2/x,/testdir/dir2/y,/testdir/dir2/x/a,/testdir/dir2/x/b

    [root@centos7 testdir]# mkdir -p /testdir/dir2/{x/{a,b},y}
    [root@centos7 testdir]# tree dir2/
    dir2/
    ├── x
    │   ├── a
    │   └── b
    └── y
    

硬鏈接和軟鏈接

硬鏈接

ln source destination

指向同一個(gè)inode的多個(gè)文件路徑刽酱,目錄不支持硬鏈接,硬鏈接不支持跨文件系統(tǒng)瞧捌,創(chuàng)建硬鏈接會(huì)增加inode引用計(jì)數(shù)棵里,其實(shí)硬鏈接就是在目錄inode中添加一個(gè)路徑和inode的對(duì)應(yīng)關(guān)系

[root@centos7 app]# echo "hello" > test1/a
[root@centos7 app]# cat test1/a
hello
[root@centos7 app]# ln test1/a test2/b
[root@centos7 app]# cat test2/b 
hello
[root@centos7 app]# ll test2/b 
-rw-r--r--. 2 root root 6 May 19 19:12 test2/b

軟鏈接

ln -s source destination

指向文件路徑的另一個(gè)文件路徑,軟鏈接與原文件時(shí)兩個(gè)獨(dú)立的文件姐呐,各自有自己的inode號(hào)殿怜,對(duì)文件創(chuàng)建軟鏈接不會(huì)增加引用計(jì)數(shù),可以跨文件系統(tǒng)曙砂,刪除原文件稳捆,軟鏈接的路徑就不存在了,就會(huì)失效

file

因?yàn)樵趌inux中麦轰,不會(huì)通過后綴名來區(qū)分文件的類型乔夯,因?yàn)橛形募缶Y砖织,僅僅用來方便用戶和管理員管理,所以可以使用file來判斷文件的類型末荐,常用選項(xiàng):

  • -b:顯示文件類型侧纯,但是不顯示文件名
  • -f filelist:列出filelist中的文件名的文件類型
  • -F:使用指定分隔符替換輸出文件名后默認(rèn)的”;”分隔符
  • -L:查看軟鏈接對(duì)應(yīng)文件的文件類型
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市甲脏,隨后出現(xiàn)的幾起案子眶熬,更是在濱河造成了極大的恐慌,老刑警劉巖块请,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娜氏,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡墩新,警方通過查閱死者的電腦和手機(jī)贸弥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來海渊,“玉大人绵疲,你說我怎么就攤上這事〕家桑” “怎么了盔憨?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)讯沈。 經(jīng)常有香客問我,道長(zhǎng)缺狠,這世上最難降的妖魔是什么驯用? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮儒老,結(jié)果婚禮上蝴乔,老公的妹妹穿的比我還像新娘。我一直安慰自己驮樊,他們只是感情好薇正,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著囚衔,像睡著了一般挖腰。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上练湿,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天猴仑,我揣著相機(jī)與錄音,去河邊找鬼。 笑死辽俗,一個(gè)胖子當(dāng)著我的面吹牛疾渣,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播崖飘,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼榴捡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了朱浴?” 一聲冷哼從身側(cè)響起吊圾,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎翰蠢,沒想到半個(gè)月后项乒,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡梁沧,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年檀何,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片趁尼。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡埃碱,死狀恐怖猖辫,靈堂內(nèi)的尸體忽然破棺而出酥泞,到底是詐尸還是另有隱情,我是刑警寧澤啃憎,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布芝囤,位于F島的核電站,受9級(jí)特大地震影響辛萍,放射性物質(zhì)發(fā)生泄漏悯姊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一贩毕、第九天 我趴在偏房一處隱蔽的房頂上張望悯许。 院中可真熱鬧,春花似錦辉阶、人聲如沸先壕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽垃僚。三九已至,卻和暖如春规辱,著一層夾襖步出監(jiān)牢的瞬間谆棺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工罕袋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留改淑,地道東北人碍岔。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像溅固,于是被迫代替她去往敵國(guó)和親付秕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 文件系統(tǒng)結(jié)構(gòu) Linux中侍郭,所有的文件與目錄都由根目錄/ 開始询吴。那是所有目錄與文件的源頭。然后再一個(gè)一個(gè)分支下來亮元,...
    不知?dú)q月惜閱讀 502評(píng)論 0 0
  • 前言: linux文件系統(tǒng)是一個(gè)倒置樹結(jié)構(gòu)猛计,從"/"開始,文件命名區(qū)分大小寫爆捞,遵循FHS(Filesystem H...
    哈嘍別樣閱讀 216評(píng)論 0 0
  • 文件有兩類數(shù)據(jù):元數(shù)據(jù)【metadata】奉瘤,數(shù)據(jù)【data】。 以下為元數(shù)據(jù)第一個(gè)字符的標(biāo)識(shí): - 普通文件 實(shí)...
    xue2007閱讀 887評(píng)論 0 0
  • 一.文件系統(tǒng)與目錄結(jié)構(gòu) image.png 文件系統(tǒng)的一些性質(zhì) 文件系統(tǒng)以從根開始煮甥, 以“/”來表示盗温。-----/...
    楠人幫閱讀 1,232評(píng)論 0 0
  • 20170911星期一天氣晴 今晚值班。跟孩子們又要短暫小別成肘,希望能努力吧卖局。 昨天一天的考試,感受到知識(shí)更新?lián)Q代太...
    璇戎爸爸閱讀 165評(píng)論 0 0