真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Linux文件和目錄操作命令01

2.1 pwd(5*****)

(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]#

2.2 cd(5*****)

(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

2.3 tree(4****)

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]# 

為每一個路徑顯示完整的路徑 f full 完整

[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]# 

2.4 mkdir(5*****)

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

同時創(chuàng)建多個目錄

[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]#

克隆目錄結(jié)構(gòu)

[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]#

2.5 touch(5*****)

創(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]#

2.6 ls(5*****)

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

ls -l 將文件的屬性和修改時間都可以顯示出來

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]# 

-h human(人類) 的作用就是可以很直觀的查看文件的大小

[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]#

-d directory參數(shù)表示只顯示目錄

[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]# 

-F classify 就是給目錄后面加上/

[root@oldbody test]# ls -F
dir1/  dir2/  dir3/  file1.txt  file2.txt  file3.txt
[root@oldbody test]#

生產(chǎn)案例:查找最近更新的文件 ll -rt 等于ls -lrt

-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]# 

-i 參數(shù) 查看inode節(jié)點

[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

2.7 cp(5*****)

不加參數(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)卡信息

2.8 mv(5*****)

移動文件和重命名 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]#

2.9 rm(5*****)

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 {} \;

別名在你敲這條命令的時候生效的,通過一些管道符傳送給它的是不會生效的

2.10 rmdir(1*)

用于刪除空目錄 當(dāng)目錄不為空時 命令不起作用

-p參數(shù) 遞歸刪除空目錄

[root@oldbody ~]# 
[root@oldbody ~]# mkdir -p oldboy/oldboy1/oldboy2
[root@oldbody ~]# rmdir -p oldboy/oldboy1/oldboy2/
[root@oldbody ~]#

2.11 ln(5*****)

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 ~]#

硬鏈接知識小結(jié):

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 源文件 目標文件

軟鏈接知識小結(jié):

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

全局結(jié)論:

刪除源文件 對硬鏈接沒有影響 但是會導(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/..

目錄的鏈接小結(jié):

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ù)不會增加

2.12 readlink(2**)

查看符號鏈接文件的內(nèi)容

[root@oldbody ~]# readlink soft_link 
/etc/hosts

文章名稱:Linux文件和目錄操作命令01
標題URL:http://weahome.cn/article/igsici.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部