(print work directory)打印工作目錄(顯示當(dāng)前所在路徑) 后面可以接 -L 默認情況下接的也是-L(logical)的 此種情況顯示的是邏輯路徑(相當(dāng)于win的一樣) -P(physical)的話,就會把真實的物理路徑全部顯示出來
目前成都創(chuàng)新互聯(lián)公司已為上1000家的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬主機、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、松原網(wǎng)站維護等服務(wù),公司將堅持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
[root@oldbody local]# pwd
/usr/local
[root@oldbody local]# cd - 返回上一次所在路徑
/root
[root@oldbody ~]#
[root@oldbody home]# pwd
/home
[root@oldbody home]# echo $PWD
/home
[root@oldbody ~]# ls -l /etc/init.d
lrwxrwxrwx. 1 root root 11 6月 15 00:26 /etc/init.d -> rc.d/init.d 軟連接文件
[root@oldbody ~]# cd /etc/init.d
[root@oldbody init.d]# pwd 為啥pwd更夠輸出當(dāng)前工作目錄了 因為環(huán)境變量$PWD的原因
/etc/init.d
[root@oldbody init.d]# pwd -L 獲取環(huán)境變量PWD對應(yīng)的數(shù)值 即為echo $PWD
/etc/init.d
[root@oldbody init.d]# pwd -P 顯示鏈接對應(yīng)源文件的目錄路徑
/etc/rc.d/init.d
[root@oldbody init.d]#
(change directory)改變目錄路徑 例子:cd /etc 后面的參數(shù)-L和-P的話,一個是邏輯的,一個是物理的
絕對路徑:從/開始的路徑 /root/test/a/b
相對路徑:不從/開始的路徑 test/a/b
cd ../.. 上上級目錄
cd ../../.. 上上上級目錄
cd / 直接到/目錄下
cd - 上一次目錄 其實 - 是因為有一個$OLDPWD這個環(huán)境變量
cd ~ 代表家目錄 其實 因為有一個$HOME這個環(huán)境變量
cd .. 退回上一級目錄 如果是一個點的話代表當(dāng)前目錄
比如[root@oldbody oldboy]# pwd pwd命令從PWD這個變量中獲取的
/oldboy
[root@oldbody oldboy]# cd /tmp/
[root@oldbody tmp]# cd - cd將從環(huán)境變量OLDPWD對應(yīng)值獲取路徑名
/oldboy
[root@oldbody oldboy]# env | grep -i oldpwd
OLDPWD=/tmp
OLDPWD=/tmp
[root@oldbody oldboy]#
[root@oldbody oldboy]# cd -
/tmp
[root@oldbody tmp]# env | grep -i oldpwd 因為你在tmp目錄下 所以你的環(huán)境變量OLDPWD=/oldboy 其中-i就是不區(qū)分大小寫的
OLDPWD=/oldboy
[root@oldbody tmp]#
[root@key ~]# cd /etc/sysconfig/
[root@key sysconfig]# cd 不加任何參數(shù) 從環(huán)境變量HOME獲取路徑 /root
[root@key ~]# cd /etc/sysconfig/
[root@key sysconfig]# cd ~ 從環(huán)境變量HOME獲取路徑 /root
tree 樹的意思 以樹的形式來顯示一個目錄結(jié)構(gòu) 如果tree不接任何參數(shù)的話,會顯示所有的tree的目錄結(jié)構(gòu)
tree -a 查看隱藏文件 .開頭的文件都是隱藏文件
tree -d 代表只顯示目錄
tree -L 其中L代表level層級的意思 顯示指定的層級
tree -i 不顯示樹枝 常與-f參數(shù)配合使用
tree -f 顯示每個文件的全路徑
tree -F 用以區(qū)分文件和目錄的方法 以/結(jié)尾的為目錄
可以用rpm -qa tree命令查看下tree是否安裝 如果tree沒有安裝,可以使用yum install tree -y 安裝tree軟件包 LANG=en 調(diào)整字符集 為英文
[root@oldbody /]# tree /liangli2/
/liangli2/
`-- liangli3
1 directory, 0 files
[root@oldbody key]# tree
.
|-- 1
|-- key1
| |-- 4
| `-- 5
|-- key2
| |-- 4
| `-- 5
`-- key3
|-- 4
`-- 5
10 directories, 0 files
[root@oldbody key]# tree -L 1
.
|-- 1
|-- key1
|-- key2
`-- key3
4 directories, 0 files
[root@oldbody key]# tree -dL 1
.
|-- 1
|-- key1
|-- key2
`-- key3
4 directories
[root@oldbody key]#
[root@oldbody key]# tree -dLf 1
.
|-- ./1
|-- ./key1
|-- ./key2
`-- ./key3
4 directories
[root@oldbody key]#
[root@oldbody sysconfig]# tree -L 1 -fi /boot/ indentation壓痕 不要前面的樹枝
/boot
/boot/System.map-2.6.32-573.el6.x86_64
/boot/config-2.6.32-573.el6.x86_64
/boot/efi
/boot/grub
/boot/initramfs-2.6.32-573.el6.x86_64.img
/boot/lost+found
/boot/symvers-2.6.32-573.el6.x86_64.gz
/boot/vmlinuz-2.6.32-573.el6.x86_64
3 directories, 5 files
[root@oldbody sysconfig]#
[root@oldbody key]# tree -F 區(qū)分文件和目錄 文件后面都加上了/
.
|-- 1/
|-- key1/
| |-- 4/
| `-- 5/
|-- key2/
| |-- 4/
| `-- 5/
`-- key3/
|-- 4/
`-- 5/
10 directories, 0 files
[root@oldbody key]#
windows下的路徑樣式為c:\data\test 而Linux下的路徑樣式為/data/test,不同的是windows系統(tǒng)下還有D,E等盤,Linux下就只有/,它是所有目錄的頂點 (make directorys)創(chuàng)建目錄 例子:mkdir /data 在根/下創(chuàng)建data目錄
-p 參數(shù) 如果目錄存在 在創(chuàng)建目錄話,接-p參數(shù)不會報錯的 另一個作用就是 可以連續(xù)創(chuàng)建多級目錄
-v 參數(shù) 就是可以看到創(chuàng)建目錄的流程是怎么樣的
或者cd /;mkdir data 切換到根下,然后創(chuàng)建data目錄 其中;就是命令的分隔符
連續(xù)創(chuàng)建目錄 mkdir -p /liangli/liangli1 創(chuàng)建2個目錄 一個是liangli一個是liangli1 其中l(wèi)iangli1在liangli目錄下
[root@oldbody /]# mkdir -pv Tech/{1..3}/{4..6}
mkdir: created directory `Tech/1'
mkdir: created directory `Tech/1/4'
mkdir: created directory `Tech/1/5'
mkdir: created directory `Tech/1/6'
mkdir: created directory `Tech/2'
mkdir: created directory `Tech/2/4'
mkdir: created directory `Tech/2/5'
mkdir: created directory `Tech/2/6'
mkdir: created directory `Tech/3'
mkdir: created directory `Tech/3/4'
mkdir: created directory `Tech/3/5'
mkdir: created directory `Tech/3/6'
[root@oldbody /]# tree /tmp
/tmp
`-- Tech
|-- 1
| |-- 4
| |-- 5
| `-- 6
|-- 2
| |-- 4
| |-- 5
| `-- 6
`-- 3
|-- 4
|-- 5
`-- 6
13 directories, 0 files
[root@oldbody /]# mkdir /Tech/dir{1..5} 連續(xù)5個dir1 dir2 dir3 dir4 dir5目錄
[root@oldbody /]# ls /Tech/
dir1 dir2 dir3 dir4 dir5 liangli.txt oldboy.txt
[root@oldbody tmp]# mkdir -p test/dir{1..5} oldboy/{a..g}
[root@oldbody tmp]# tree test oldboy/
test
|-- dir1
|-- dir2
|-- dir3
|-- dir4
`-- dir5
oldboy/
|-- a
|-- b
|-- c
|-- d
|-- e
|-- f
`-- g
12 directories, 0 files
[root@oldbody tmp]#
[root@oldbody ~]# tree -if liangli2018/
liangli2018
liangli2018/dir1
liangli2018/dir1/4
liangli2018/dir1/5
liangli2018/dir1/6
liangli2018/dir1/7
liangli2018/dir2
liangli2018/dir2/4
liangli2018/dir2/5
liangli2018/dir2/6
liangli2018/dir2/7
liangli2018/dir3
liangli2018/dir3/4
liangli2018/dir3/5
liangli2018/dir3/6
liangli2018/dir3/7
15 directories, 0 files
[root@oldbody ~]# tree -if liangli2018/ --noreport liangli2018 --noreport不顯示最后一行統(tǒng)計信息
liangli2018
liangli2018/dir1
liangli2018/dir1/4
liangli2018/dir1/5
liangli2018/dir1/6
liangli2018/dir1/7
liangli2018/dir2
liangli2018/dir2/4
liangli2018/dir2/5
liangli2018/dir2/6
liangli2018/dir2/7
liangli2018/dir3
liangli2018/dir3/4
liangli2018/dir3/5
liangli2018/dir3/6
liangli2018/dir3/7
liangli2018
liangli2018/dir1
liangli2018/dir1/4
liangli2018/dir1/5
liangli2018/dir1/6
liangli2018/dir1/7
liangli2018/dir2
liangli2018/dir2/4
liangli2018/dir2/5
liangli2018/dir2/6
liangli2018/dir2/7
liangli2018/dir3
liangli2018/dir3/4
liangli2018/dir3/5
liangli2018/dir3/6
liangli2018/dir3/7
[root@oldbody ~]# tree -if liangli2018/ --noreport liangli2018 >oldboy.txt
[root@oldbody ~]# cat oldboy.txt
liangli2018 這個是必須存在的目錄
liangli2018/dir1
liangli2018/dir1/4
liangli2018/dir1/5
liangli2018/dir1/6
liangli2018/dir1/7
liangli2018/dir2
liangli2018/dir2/4
liangli2018/dir2/5
liangli2018/dir2/6
liangli2018/dir2/7
liangli2018/dir3
liangli2018/dir3/4
liangli2018/dir3/5
liangli2018/dir3/6
liangli2018/dir3/7
liangli2018
liangli2018/dir1
liangli2018/dir1/4
liangli2018/dir1/5
liangli2018/dir1/6
liangli2018/dir1/7
liangli2018/dir2
liangli2018/dir2/4
liangli2018/dir2/5
liangli2018/dir2/6
liangli2018/dir2/7
liangli2018/dir3
liangli2018/dir3/4
liangli2018/dir3/5
liangli2018/dir3/6
liangli2018/dir3/7
[root@oldbody ~]# cd /tmp
[root@oldbody tmp]# mkdir -p `cat /root/oldboy.txt` 首先執(zhí)行``反引號里面的內(nèi)容 然后在執(zhí)行mkdir命令
[root@oldbody tmp]# ll
total 4
drwxr-xr-x 5 root root 4096 Sep 29 10:42 liangli2018
[root@oldbody tmp]# tree
.
`-- liangli2018
|-- dir1
| |-- 4
| |-- 5
| |-- 6
| `-- 7
|-- dir2
| |-- 4
| |-- 5
| |-- 6
| `-- 7
`-- dir3
|-- 4
|-- 5
|-- 6
`-- 7
16 directories, 0 files
[root@oldbody tmp]#
創(chuàng)建文件或更新時間戳 查看ls /Tech可以看到自己創(chuàng)建的文件了,如果文件不存在,就建立新文件,如果存在,就改變文件的訪問時間atime等時間戳
連續(xù)創(chuàng)建10000個文件 touch stu{1..10000}
-a 參數(shù) 只更改指定文件最后訪問時間
-m 參數(shù) 只更改指定文件最后修改時間
-t 參數(shù) 設(shè)置文件的時間屬性
-d 參數(shù) 設(shè)置指定文件的時間屬性
-r 參數(shù) 指定文件的時間屬性與模板文件file的時間屬性相同
可以同時創(chuàng)建2個文件 touch a.txt b.txt 兩個文件 也可以用touch {1..4}.txt
通過命令可以看到訪問(-a) 修改(-m) 改變(-c)文件的時間狀態(tài)
[root@oldbody 1]# stat 1.txt
File: `1.txt'
Size: 0 Blocks: 0 IO Block: 4096 regular empty file
Device: 803h/2051d Inode: 784979 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-06-21 20:16:43.546093627 +0800
Modify: 2018-06-21 20:16:43.546093627 +0800
Change: 2018-06-21 20:16:43.546093627 +0800
[root@oldbody 1]#
[root@oldbody 1]# touch -a 1.txt 的話,表示只改變訪問和改變的時間戳,不改變修改的時間戳 其中Change時間不管任何情況都是會改變的
touch -m 1.txt 表示只改變修改和改變的時間戳 其中Change時間不管任何情況都是會改變的
[root@oldboy liangli]# stat -c %a a.txt
644
[root@oldboy liangli]#
-c 使用指定的格式而不是默認的格式 %a 八進制權(quán)限
指定時間屬性創(chuàng)建/修改文件(了解)
[root@oldbody tmp]# touch -d 20201001 1.txt d指定創(chuàng)建文件后文件修改時間
[root@oldbody tmp]# ll -h 1.txt
-rw-r--r-- 1 root root 11 Oct 1 2020 1.txt
[root@oldbody tmp]# ll -h 2.txt
-rw-r--r-- 1 root root 0 Sep 29 10:57 2.txt 10:57 此時間指的是文件的修改時間
[root@oldbody tmp]# touch -r 2.txt 1.txt r讓其和其他文件時間屬性保持一致
[root@oldbody tmp]# ll -h 1.txt
-rw-r--r-- 1 root root 11 Sep 29 10:57 1.txt
[root@oldbody tmp]# touch -t 201809291110.00 1.txt t設(shè)置文件格式
[root@oldbody tmp]# ll -h --full-time 1.txt
-rw-r--r-- 1 root root 11 2018-09-29 11:10:00.000000000 +0800 1.txt
[root@oldbody tmp]#
list(列表) 列表目錄文件 例子:ls / 列 根/目錄下目錄和文件 ls -l 顯示的時間為文件或目錄的修改時間
-l long長格式(顯示出來的時間為最后一次修改時間)
-d directorys查看目錄
-a all -A 列出所有文件,包括隱藏文件,但是不包括.和..這兩個是目錄
-t 根據(jù)最后修改時間mtime排序,默認以文件名排序
-r 反轉(zhuǎn)排序
-i 顯示inode節(jié)點
-h 人類可讀
--full-time 以完整的時間格式輸出
-p 只在目錄后面加上/
--time-style=long-iso 顯示完整時間屬性參數(shù)(年份)
-F 參數(shù) 區(qū)分文件和目錄的方式(在結(jié)尾處加上類型指示符號 / @等)了解 加上“”代表可執(zhí)行的普通文件
加上“/”表示目錄
加上“=”表示套接字(sockets)
加上“|”表示FIFOs
加上“@”表示符號鏈接
[root@oldbody oldboy]# touch oldboy.txt
[root@oldbody oldboy]# ls -lrt r是倒敘的意思 t按修改時間排序
total 20
-rw-r--r-- 1 root root 0 Jun 26 21:53 yingsui.gz
-rw-r--r-- 1 root root 0 Jun 26 21:53 wodi.gz
-rw-r--r-- 1 root root 0 Jun 26 21:53 oldboy
drwxr-xr-x 2 root root 4096 Jun 26 21:56 xiaofan
-rw-r--r-- 1 root root 0 Jun 26 23:40 oldboy.txt
[root@oldbody oldboy]#
[root@oldbody ~]# date 查看系統(tǒng)時間
Wed Jun 27 20:28:45 CST 2018
[root@oldbody ~]#
ls -l --color=auto 顯示顏色
[root@oldbody oldboy]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@oldbody oldboy]# ls -l 目錄會顯示顏色的
total 20
drwxr-xr-x 3 root root 4096 Jun 26 21:56 ext
-rw-r--r-- 1 root root 0 Jun 26 21:53 jeacen
drwxr-xr-x 2 root root 4096 Jun 26 21:56 xingfujie
-rw-r--r-- 1 root root 0 Jun 26 21:53 yingsui.gz
[root@oldbody oldboy]# \ls -l 屏蔽掉別名
total 20
drwxr-xr-x 3 root root 4096 Jun 26 21:56 ext
-rw-r--r-- 1 root root 0 Jun 26 21:53 jeacen
drwxr-xr-x 2 root root 4096 Jun 26 21:56 xiaofan
drwxr-xr-x 2 root root 4096 Jun 26 21:56 xingfujie
-rw-r--r-- 1 root root 0 Jun 26 21:53 yingsui.gz
[root@oldbody oldboy]#
[root@oldbody oldboy]# \ls -l --color=auto 目錄會顯示顏色的
total 20
drwxr-xr-x 3 root root 4096 Jun 26 21:56 ext
-rw-r--r-- 1 root root 0 Jun 26 21:53 jeacen
drwxr-xr-x 2 root root 4096 Jun 26 21:56 xiaofan
drwxr-xr-x 2 root root 4096 Jun 26 21:56 xingfujie
-rw-r--r-- 1 root root 0 Jun 26 21:53 yingsui.gz
[root@oldbody oldboy]#
[root@oldbody oldboy]# cat 123.log
key
[root@oldbody oldboy]# grep --color=auto key 123.log 我們也可以給過濾的內(nèi)容加顏色
key
[root@oldbody oldboy]#
[root@oldbody oldboy]# grep --color=auto 3306 /etc/services 給3306這個端口加上顏色
MySQL 3306/tcp # MySQL
mysql 3306/udp # MySQL
[root@oldbody oldboy]#
ls -a 可以顯示隱藏的文件和不隱藏的文件 all
[root@oldbody test]# ls -a 顯示全部的文件
. .. dir1 dir2 dir3 file1.txt file2.txt file3.txt
ll就相當(dāng)于ls -l一樣 系統(tǒng)自帶的一個alias
[root@oldbody test]# ls -l
total 12
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir2
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir3
-rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
[root@oldbody test]# ll
total 12
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir2
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir3
-rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
[root@oldbody test]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i'
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@oldbody test]#
[root@oldbody test]# ls -lh
total 12K
drwxr-xr-x 2 root root 4.0K Jun 28 11:48 dir1
drwxr-xr-x 2 root root 4.0K Jun 28 11:48 dir2
drwxr-xr-x 2 root root 4.0K Jun 28 11:48 dir3
-rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
[root@oldbody test]#
[root@oldbody test]# ls -l | grep dir1
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
[root@oldbody test]# ll -d dir1
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
[root@oldbody test]#
[root@oldbody test]# ls -F
dir1/ dir2/ dir3/ file1.txt file2.txt file3.txt
[root@oldbody test]#
-r reverse 倒敘排序或者反向排序
-t 按修改時間排序 默認是以文件名排序
默認情況下 最新創(chuàng)建的文件和目錄放在最前面
[root@oldbody test]# ll
total 12
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir2
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir3
-rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
[root@oldbody test]#
[root@oldbody test]# ll -rt
total 12
-rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir3
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir2
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
[root@oldbody test]#
[root@oldbody test]# ll -i
total 12
915788 drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
915789 drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir2
915790 drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir3
915785 -rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
915786 -rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
915787 -rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
[root@oldbody test]#
[root@oldbody tmp]# ll --time-style=long-iso --time-style=long-iso 參數(shù)使用
total 12
-rw-r--r-- 1 root root 21 2018-09-29 11:39 1.txt
-rw-r--r-- 1 root root 0 2018-09-29 11:21 123.txt
-rw-r--r-- 1 root root 0 2018-09-29 10:57 2.txt
drwxr-xr-x 2 root root 4096 2018-09-29 11:19 key
-rw-r--r-- 1 root root 0 2018-09-29 11:18 key.txt
drwxr-xr-x 5 root root 4096 2018-09-29 10:42 liangli2018
不加參數(shù)的時候 只能拷貝文件
-a 相當(dāng)于-dpr
-d 若源文件為鏈接文件(link file),則復(fù)制鏈接文件屬性而非檔案本身
-p 連同檔案的屬性一起復(fù)制過去,而非使用默認屬性
-r 遞歸 用于復(fù)制目錄
假如tmp目錄下有一個test.txt文件 mnt目錄下有一個test.txt文件,現(xiàn)在將tmp目錄下的test.txt文件復(fù)制到mnt目錄下 默認情況下 會進行相應(yīng)的提示
輸入命令 \cp /mnt/test.txt /tmp/ 不提示 別名的原因 \就是屏蔽別名
或者 /bin/cp /mnt/test.txt /tmp/ 補全cp命令的路徑也是不提示的
因為cp mv rm屬于危險的操作命令,有可能會對文件造成損壞,我們可以查看下系統(tǒng)現(xiàn)有的別名alias 可以輸入命令unalias cp 直接刪除cp的別名,也可以達到其效果 (不推薦使用)
[root@oldbody test]# ll
total 12
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir2
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir3
-rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
[root@oldbody test]# cp file3.txt file4.txt
[root@oldbody test]# ll
total 12
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir2
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir3
-rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
-rw-r--r-- 1 root root 0 Jun 28 12:17 file4.txt 時間屬性改變了
[root@oldbody test]#
cp -a -a等于-pdr 作用,復(fù)制文件或目錄過去的時候可以保證屬性不變化 復(fù)制文件或目錄保持源文件或源目錄軟連接不發(fā)生變化
[root@oldbody test]# cp file3.txt file5.txt
[root@oldbody test]# ll
total 12
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir2
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir3
-rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
-rw-r--r-- 1 root root 0 Jun 28 12:17 file4.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file5.txt
[root@oldbody test]#
[root@oldbody test]# alias cp -i 覆蓋前會提示
alias cp='cp -i'
[root@oldbody test]#
[root@oldbody test]# cp -a file3.txt file5.txt
cp: overwrite `file5.txt'?
[root@oldbody test]# \cp -a file3.txt file5.txt 屏蔽別名
[root@oldbody test]#
[root@oldbody test]# cp -a dir3 dir4 可以復(fù)制目錄
[root@oldbody test]# ll
total 16
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir2
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir3
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir4
-rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
-rw-r--r-- 1 root root 0 Jun 28 12:17 file4.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file5.txt
[root@oldbody test]#
A{B,C} 等價于 AB AC
[root@oldbody test]# cp -a dir{3,5}
[root@oldbody test]# ll
total 20
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir2
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir3
drwxr-xr-x 3 root root 4096 Jun 28 12:30 dir4
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir5
-rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
-rw-r--r-- 1 root root 0 Jun 28 12:17 file4.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file5.txt
[root@oldbody test]#
cp /etc/ssh/sshd_config {,.ori} 相當(dāng)于
cp /etc/ssh/sshd_config cp /etc/ssh/sshd_config.ori 一樣
[root@oldbody test]# cp /etc/sysconfig/network-scripts/ifcfg-eth0{,.ori} 備份網(wǎng)卡信息
移動文件和重命名 move 移動文件或目錄 移動就是剪切的意思 例子:mv /Tech /liangli 把Tech移動到liangli目錄下 也有改名的功能
mv 移動文件和重命名 move(rename)files
[root@oldbody test]# mv file{4,6}.txt 改名的功能
[root@oldbody test]# ll
total 20
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir1
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir2
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir3
drwxr-xr-x 3 root root 4096 Jun 28 12:30 dir4
drwxr-xr-x 2 root root 4096 Jun 28 11:48 dir5
-rw-r--r-- 1 root root 0 Jun 28 11:47 file1.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file2.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file3.txt
-rw-r--r-- 1 root root 0 Jun 28 11:47 file5.txt
-rw-r--r-- 1 root root 0 Jun 28 12:17 file6.txt
No such file or directory 沒有那個文件或目錄
[root@oldbody test]# alias
alias cp='cp -i'
alias l.='ls -d .* --color=auto'
alias ll='ls -l --color=auto'
alias ls='ls --color=auto'
alias mv='mv -i' mv 系統(tǒng)別名 -i參數(shù) 在覆蓋前需要提示
alias rm='rm -i'
alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
[root@oldbody test]#
多個文件的移動方式(必須得保證/dir1目錄存在)
[root@oldbody test]# mv file1.txt file2.txt file3.txt file5.txt file6.txt dir1/t file6.txt dir1/
[root@oldbody test]# ls
dir1 dir2 dir3 dir4 dir5
[root@oldbody test]# cd dir1/
[root@oldbody dir1]# ls
file1.txt file2.txt file3.txt file5.txt file6.txt
[root@oldbody test]# tree
.
|-- dir1
| |-- file1.txt
| |-- file2.txt
| |-- file3.txt
| |-- file5.txt
| `-- file6.txt
|-- dir2
|-- dir3
|-- dir4
| `-- dir3
`-- dir5
6 directories, 5 files
[root@oldbody test]#
[root@oldbody test]# file dir1 使用file dir1 可以查看dir1是文件還是目錄
dir1: directory
[root@oldbody test]# mv dir1 dir2 dir3 dir4 dir5 移動目錄 把前n-1個目錄移動到最后一個目錄(必須得保證dir5目錄存在)
[root@oldbody test]# tree
.
`-- dir5
|-- dir1
| |-- file1.txt
| |-- file2.txt
| |-- file3.txt
| |-- file5.txt
| `-- file6.txt
|-- dir2
|-- dir3
`-- dir4
`-- dir3
6 directories, 5 files
[root@oldbody test]#
remove(移除)刪除目錄和文件 -f(force)強制,-r(遞歸,用于刪除目錄) 強調(diào)刪除命令要慎用,非常危險,刪除前一定要先備份一份 因為刪除后不可恢復(fù)
正確刪除文件的姿勢
1,使用mv命令移動到/tmp(回收站)替代刪除動作
2、通過cd命令到達目的目錄
然后通過find -type f(d) -name ‘’ | xargs rm -f
或者 find -type f(d)-name “*.txt” -mtime +7 -exec rm {} \;
別名在你敲這條命令的時候生效的,通過一些管道符傳送給它的是不會生效的
用于刪除空目錄 當(dāng)目錄不為空時 命令不起作用
[root@oldbody ~]#
[root@oldbody ~]# mkdir -p oldboy/oldboy1/oldboy2
[root@oldbody ~]# rmdir -p oldboy/oldboy1/oldboy2/
[root@oldbody ~]#
link得縮寫,可以創(chuàng)建硬鏈接與軟連接
硬鏈接 ln 源文件 目標文件 (硬鏈接生成時普通文件-字符)
軟鏈接 ln -s 源文件 目標文件 (目標文件不能事先存在)(生成的符號鏈接l類型)
硬鏈接:
是通過inode來進行鏈接的 在linux文件系統(tǒng)中,多個文件名指向同一個inode是正常且允許的 硬鏈接文件就相當(dāng)于文件的另外一個入口 硬鏈接的作用之一是允許一個文件擁有多個有效路徑名(多個入口),這樣用戶就可以建立硬鏈接到重要的文件 ,以防止 誤刪 源數(shù)據(jù) 注意:目錄不能作為硬鏈接
[root@oldbody ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@oldbody ~]# ln /etc/hosts hard_link 創(chuàng)建硬鏈接
[root@oldbody ~]# ll -ih /etc/hosts hard_link
654109 -rw-r--r--. 3 root root 158 1月 12 2010 /etc/hosts
654109 -rw-r--r--. 3 root root 158 1月 12 2010 hard_link
[root@oldbody ~]# rm -f /etc/hosts 刪除
[root@oldbody ~]# cat /etc/hosts
cat: /etc/hosts: 沒有那個文件或目錄
[root@oldbody ~]# cat hard_link
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@oldbody ~]# ln hard_link /etc/hosts
[root@oldbody ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@oldbody ~]# ll -ih /etc/hosts hard_link
654109 -rw-r--r--. 3 root root 158 1月 12 2010 /etc/hosts
654109 -rw-r--r--. 3 root root 158 1月 12 2010 hard_link
[root@oldbody ~]#
1、具有相同inode節(jié)點號的多個文件是互為硬鏈接文件
2、刪除硬鏈接文件或者刪除源文件任意之一,文件實體并未被刪除
3、只有刪除了源文件及所有對應(yīng)的硬鏈接文件,文件實體才會被刪除
4、當(dāng)所有的硬鏈接文件及源文件被刪除后,再存放新的數(shù)據(jù)會占用這個文件的空間,或者磁盤fsck檢查的時候,刪除的數(shù)據(jù)也會被系統(tǒng)回收(養(yǎng)成刪除及多套環(huán)境測試的好習(xí)慣)
5、硬鏈接文件就是文件的另一個入口(相當(dāng)于超市的前門,后門一樣)
6、可以通過給文件設(shè)置硬鏈接文件,來防止重要文件被誤刪
7、通過執(zhí)行命令 ln 源文件 硬鏈接文件 即可完成創(chuàng)建硬鏈接
8、硬鏈接文件是普通文件,因此可以用rm命令刪除
9、對于靜態(tài)文件(沒有進程正在調(diào)用的文件)來講,當(dāng)對應(yīng)硬鏈接數(shù)為0 (i_link)文件就被刪除 i_link的查看方法(ls -l結(jié)果的第三列就是)
軟連接 或者符號鏈接 相當(dāng)于win的快捷方式 注意:目錄可以創(chuàng)建軟連接
ln -s 源文件 目標文件
1、軟鏈接類似win的快捷方式(可以通過readlink查看其指向)
2、軟鏈接類似一個文本文件,里面存放的是源文件的路徑,指向源文件實體
3、刪除源文件,軟鏈接文件依然存在,但是無法訪問指向的源文件路徑的內(nèi)容了
4、失效的時候一般是白字紅底閃爍提示
5、執(zhí)行命令 ln -s 源文件 軟鏈接文件 即可完成創(chuàng)建軟鏈接(目標不能存在)
6、軟鏈接和源文件是不同類型的文件,也是不同的文件,inode號也不相同
7、軟鏈接文件類型為(l),可以用rm命令
[root@oldbody ~]# ln -s /etc/hosts soft_link
[root@oldbody ~]# ll -ih /etc/hosts hard_link soft_link
654109 -rw-r--r--. 3 root root 158 1月 12 2010 /etc/hosts
654109 -rw-r--r--. 3 root root 158 1月 12 2010 hard_link
915785 lrwxrwxrwx 1 root root 10 9月 29 13:34 soft_link -> /etc/hosts
刪除源文件 對硬鏈接沒有影響 但是會導(dǎo)致軟鏈接文件失效,白字紅底閃爍
刪除源文件和硬鏈接文件 整個文件會真正的被刪除
很多硬件設(shè)備中的快照功能 就是利用了硬鏈接的原理
[root@oldbody liangli2018]# ll -ihd oldboy oldboy/. oldboy/test/..
915805 drwxr-xr-x 3 root root 4.0K 9月 29 13:44 oldboy
915805 drwxr-xr-x 3 root root 4.0K 9月 29 13:44 oldboy/.
915805 drwxr-xr-x 3 root root 4.0K 9月 29 13:44 oldboy/test/..
1、對于目錄 不可以創(chuàng)建硬鏈接 但可以創(chuàng)建軟鏈接(原因是目錄可以跨文件系統(tǒng)的)
2、對于目錄的軟鏈接是生產(chǎn)場景運維中常用的技巧
3、目錄的硬鏈接不能跨越文件系統(tǒng)(從硬鏈接原理可以理解 硬鏈接需要有相同的inode值)
4、每個目錄下面都有一個硬鏈接 “.” 號和對應(yīng)上級目錄的硬鏈接“..”
5、再父目錄里創(chuàng)建一個子目錄,父目錄的鏈接數(shù)增加1(每個子目錄里都有..來指向父目錄)但是再父目錄里創(chuàng)建文件,父目錄的鏈接數(shù)不會增加
查看符號鏈接文件的內(nèi)容
[root@oldbody ~]# readlink soft_link
/etc/hosts