文件和目錄的基本操作

一、Linux下的文件類型

Linux文件的常見類型:

1、普通文件
2、目錄
3、字符設(shè)備文件
4、塊設(shè)備文件
5、符號(hào)鏈接文件等

現(xiàn)在我們進(jìn)行一個(gè)簡要的說明;

1、普通文件和目錄

[baixiaoyeer@localhost ~]$ls -lh=[baixiaoyeer@localhost ~]$ll
查看文件屬性

image.png

or
image.png
2、字符設(shè)備或塊設(shè)備文件
[baixiaoyeer@localhost ~]$ ls -la /dev/tty
crw-rw-rw-. 1 root tty 5, 0 May 17 22:39 /dev/tty
[baixiaoyeer@localhost ~]$ ls -la /dev/ram0
brw-rw----. 1 root disk 1, 0 May 17 22:39 /dev/ram0
image.png

image.png

注意:
/dev/tty的屬性是crw-rw-rw-,前面第一個(gè)字符是c,表示是字符設(shè)備文件,即串口設(shè)備;
/dev/ram0的屬性是brw-rw----,前面第一個(gè)字符是b,表示塊設(shè)備,即硬盤、光驅(qū)等設(shè)備。
這種類的文件,是可以用mknode來創(chuàng)建,用rm來刪除的,目前在最新的Linux發(fā)行版本中,一般不用自己來創(chuàng)建設(shè)備文件,主要是因?yàn)槲募蛢?nèi)核相關(guān)聯(lián)的。

3、套接口文件
[root@localhost lib]# ls -lh /var/run/cups/cups.sock
srwxrwxrwx. 1 root root 0 May 17 22:40 /var/run/cups/cups.sock

注意:
/var/run/cups/cups.sock的屬性是srwxrwxrwx,前面第一個(gè)字符是s。僅了解即可。

二、目錄的操作

目錄相關(guān)操作最基本的操作命令

cd:切換目錄
pwd:顯示目前的目錄
mkdir:創(chuàng)建一個(gè)新目錄
rmdir:刪除一個(gè)空目錄

1、cd是change directory的縮寫,用來切換工作目錄的命令。注:目錄名稱與cd命令之間存在一個(gè)空格。

絕對(duì)路徑:【由根目錄/寫起】;例:/dev/tty
相對(duì)路徑:【非由/寫起】;例:./ or ../

image.png

注意:

.         代表此層目錄
..        代表上一目錄
-         代表前一工作目錄
~         代表【目前使用者身份】所在的家目錄
~account  代表account這個(gè)使用者家目錄
(account是個(gè)賬號(hào)名稱)
image.png
2、pwd(顯示目前所在的目錄)

pwd是Print Working Directory的縮寫,也就是顯示目前所在目錄的命令。實(shí)例請參照1。

3、mkdir(創(chuàng)建目錄)

[root@localhost ~]# mkdir [-mp](目錄名稱)

-m 配置文件的權(quán)限。直接配置,不需要看默認(rèn)權(quán)限(umask)
-p 直接將所需要的目錄(包含上一級(jí)目錄)遞回創(chuàng)建起來

image.png

eg1:創(chuàng)建一個(gè)目錄

image.png

eg2:創(chuàng)建多級(jí)目錄

image.png
4、rmdir(刪除【空】的目錄)

[root@localhost ~]# rmdir [-mp](目錄名稱)

image.png

eg1:刪除一個(gè)空目錄

image.png

eg2:刪除多級(jí)空目錄

image.png

三、文件的操作

1、文件和目錄檢查:ls
2、復(fù)制:cp & scp
3、刪除:rm
4、移動(dòng):mv

1、文件和目錄檢查:ls
[root@SecEvery ~]# ls --help
用法:ls [選項(xiàng)]... [文件]...
列出 FILE 的信息(默認(rèn)為當(dāng)前目錄)。
如果不指定-cftuvSUX 或--sort 選項(xiàng),則根據(jù)字母大小排序。

長選項(xiàng)必須使用的參數(shù)對(duì)于短選項(xiàng)時(shí)也是必需使用的。
  -a, --all         不隱藏任何以. 開始的項(xiàng)目
  -A, --almost-all      列出除. 及.. 以外的任何項(xiàng)目
      --author          與-l 同時(shí)使用時(shí)列出每個(gè)文件的作者
  -b, --escape          以八進(jìn)制溢出序列表示不可打印的字符
      --block-size=大小       塊以指定大小的字節(jié)為單位
  -B, --ignore-backups      不列出任何以"~"字符結(jié)束的項(xiàng)目
  -c                配合-lt:根據(jù)ctime 排序并顯示ctime(文件
                狀態(tài)最后更改的時(shí)間)
                配合-l:顯示ctime 但根據(jù)名稱排序            其他情況:按ctime 排序
  -C                每欄由上至下列出項(xiàng)目
      --color[=WHEN]        控制是否使用色彩分辨文件。WHEN 可以是
                "never"(默認(rèn))、"always"或"auto"其中之一
  -d, --directory       當(dāng)遇到目錄時(shí)列出目錄本身而非目錄內(nèi)的文件
  -D, --dired           產(chǎn)生適合Emacs 的dired 模式使用的結(jié)果
  -f                不進(jìn)行排序,-aU 選項(xiàng)生效,-lst 選項(xiàng)失效
  -F, --classify        加上文件類型的指示符號(hào)(*/=@| 其中一個(gè))
      --format=關(guān)鍵字      交錯(cuò)-x,逗號(hào)分隔-m,水平-x,長-l,
                單欄-1,詳細(xì)-l,垂直-C
      --full-time       即-l --time-style=full-iso
  -g                類似-l,但不列出所有者
      --group-directories-first
            在文件前分組目錄。此選項(xiàng)可與--sort 一起使用,
            但是一旦使用--sort=none (-U)將禁用分組
  -G, --no-group        以一個(gè)長列表的形式,不輸出組名
  -h, --human-readable      與-l 一起,以易于閱讀的格式輸出文件大小
                (例如 1K 234M 2G)
      --si          同上面類似,但是使用1000 為基底而非1024
  -H, --dereference-command-line
                跟隨命令行列出的符號(hào)鏈接
      --dereference-command-line-symlink-to-dir
                跟隨命令行列出的目錄的符號(hào)鏈接
      --hide=PATTERN            隱藏符合PATTERN 模式的項(xiàng)目
                (-a 或 -A 將覆蓋此選項(xiàng))
      --indicator-style=方式  指定在每個(gè)項(xiàng)目名稱后加上指示符號(hào)方式:
                none (默認(rèn)),classify (-F),file-type (-p)
  -i, --inode           顯示每個(gè)文件的inode 號(hào)
  -I, --ignore=PATTERN      不顯示任何符合指定shell PATTERN 的項(xiàng)目
  -k                即--block-size=1K
  -l                使用較長格式列出信息
  -L, --dereference     當(dāng)顯示符號(hào)鏈接的文件信息時(shí),顯示符號(hào)鏈接所指示
                的對(duì)象而并非符號(hào)鏈接本身的信息
  -m                所有項(xiàng)目以逗號(hào)分隔,并填滿整行行寬
  -n, --numeric-uid-gid     類似 -l,但列出UID 及GID 號(hào)
  -N, --literal         輸出未經(jīng)處理的項(xiàng)目名稱 (如不特別處理控制字符)
  -o                類似 -l,但不列出有關(guān)組的信息
  -p,  --indicator-style=slash  對(duì)目錄加上表示符號(hào)"/"
  -q, --hide-control-chars  以"?"字符代替無法打印的字符
      --show-control-chars  直接顯示無法打印的字符 (這是默認(rèn)方式,除非調(diào)用
                的程序名稱是"ls"而且是在終端輸出結(jié)果)
  -Q, --quote-name      將條目名稱括上雙引號(hào)
      --quoting-style=方式    使用指定的quoting 方式顯示條目的名稱:
                literal、locale、shell、shell-always、c、escape
  -r, --reverse         排序時(shí)保留順序
  -R, --recursive       遞歸顯示子目錄
  -s, --size            以塊數(shù)形式顯示每個(gè)文件分配的尺寸
  -S                根據(jù)文件大小排序
      --sort=WORD       以下是可選用的WORD 和它們代表的相應(yīng)選項(xiàng):
                extension -X       status   -c
                none      -U       time     -t
                size      -S       atime    -u
                time      -t       access   -u
                version   -v       use      -u
      --time=WORD       和-l 同時(shí)使用時(shí)顯示W(wǎng)ORD 所代表的時(shí)間而非修改時(shí)
                間:atime、access、use、ctime 或status;加上
                --sort=time 選項(xiàng)時(shí)會(huì)以指定時(shí)間作為排序關(guān)鍵字
      --time-style=STYLE    和-l 同時(shí)使用時(shí)根據(jù)STYLE 代表的格式顯示時(shí)間:
                full-iso、iso、locale、posix-iso、+FORMAT。
                FORMAT 即是"date"所用的時(shí)間格式;如果FORMAT
                是FORMAT1<換行>FORMAT2,F(xiàn)ORMAT1 適用于較舊
                的文件而FORMAT2 適用于較新的文件;如果STYLE
                以"posix-"開頭,則STYLE 僅在POSIX 語系之外
                生效。
  -t                根據(jù)修改時(shí)間排序
  -T, --tabsize=寬度  指定制表符(Tab)的寬度,而非8 個(gè)字符
  -t            按修改時(shí)間排序
  -T, --tabsize=COLS    指定制表符(Tab)的寬度,而非8個(gè)字符
  -u            同-lt 一起使用:按照訪問時(shí)間排序并顯示
            同-l一起使用:顯示訪問時(shí)間并按文件名排序
            其他:按照訪問時(shí)間排序
  -U            不進(jìn)行排序;按照目錄順序列出項(xiàng)目
  -v            在文本中進(jìn)行數(shù)字(版本)的自然排序
  -w, --width=COLS           assume screen width instead of current value
  -x                         list entries by lines instead of by columns
  -X                         sort alphabetically by entry extension
  -1                         list one file per line

SELinux options:

  --lcontext                 Display security context.   Enable -l. Lines
                             will probably be too wide for most displays.
  -Z, --context              Display security context so it fits on most
                             displays.  Displays only mode, user, group,
                             security context and file name.
  --scontext                 Display only security context and file name.
      --help        顯示此幫助信息并退出
      --version     顯示版本信息并退出

SIZE 可以是一個(gè)可選的整數(shù),后面跟著以下單位中的一個(gè):
KB 1000,K 1024,MB 1000*1000,M 1024*1024,還有 G、T、P、E、Z、Y。

使用色彩來區(qū)分文件類型的功能已被禁用,默認(rèn)設(shè)置和 --color=never 同時(shí)禁用了它。
使用 --color=auto 選項(xiàng),ls 只在標(biāo)準(zhǔn)輸出被連至終端時(shí)才生成顏色代碼。
LS_COLORS 環(huán)境變量可改變此設(shè)置,可使用 dircolors 命令來設(shè)置。


退出狀態(tài):
 0  正常
 1  一般問題 (例如:無法訪問子文件夾)
 2  嚴(yán)重問題 (例如:無法使用命令行參數(shù))

[root@SecEvery ~]# ls
[root@SecEvery ~]# ls -a

image.png
2、復(fù)制:cp & scp
[root@SecEvery ~]# cp --help
用法:cp [選項(xiàng)]... [-T] 源文件 目標(biāo)文件
 或:cp [選項(xiàng)]... 源文件... 目錄
 或:cp [選項(xiàng)]... -t 目錄 源文件...
將源文件復(fù)制至目標(biāo)文件,或?qū)⒍鄠€(gè)源文件復(fù)制至目標(biāo)目錄。

長選項(xiàng)必須使用的參數(shù)對(duì)于短選項(xiàng)時(shí)也是必需使用的。
  -a, --archive         等于-dR --preserve=all
      --backup[=CONTROL     為每個(gè)已存在的目標(biāo)文件創(chuàng)建備份
  -b                類似--backup 但不接受參數(shù)
      --copy-contents       在遞歸處理是復(fù)制特殊文件內(nèi)容
  -d                等于--no-dereference --preserve=links
  -f, --force           如果目標(biāo)文件無法打開則將其移除并重試(當(dāng) -n 選項(xiàng)
                    存在時(shí)則不需再選此項(xiàng))
  -i, --interactive     覆蓋前詢問(使前面的 -n 選項(xiàng)失效)
  -H                跟隨源文件中的命令行符號(hào)鏈接
  -l, --link            鏈接文件而不復(fù)制
  -L, --dereference     總是跟隨符號(hào)鏈接
  -n, --no-clobber      不要覆蓋已存在的文件(使前面的 -i 選項(xiàng)失效)
  -P, --no-dereference      不跟隨源文件中的符號(hào)鏈接
  -p                等于--preserve=模式,所有權(quán),時(shí)間戳
      --preserve[=屬性列表  保持指定的屬性(默認(rèn):模式,所有權(quán),時(shí)間戳),如果
                    可能保持附加屬性:環(huán)境、鏈接、xattr 等
  -c                           same as --preserve=context
      --sno-preserve=屬性列表   不保留指定的文件屬性
      --parents         復(fù)制前在目標(biāo)目錄創(chuàng)建來源文件路徑中的所有目錄
  -R, -r, --recursive       遞歸復(fù)制目錄及其子目錄內(nèi)的所有內(nèi)容
      --reflink[=WHEN]      控制克隆/CoW 副本。請查看下面的內(nèi)如。
      --remove-destination  嘗試打開目標(biāo)文件前先刪除已存在的目的地
                    文件 (相對(duì)于 --force 選項(xiàng))
      --sparse=WHEN     控制創(chuàng)建稀疏文件的方式
      --strip-trailing-slashes  刪除參數(shù)中所有源文件/目錄末端的斜杠
  -s, --symbolic-link       只創(chuàng)建符號(hào)鏈接而不復(fù)制文件
  -S, --suffix=后綴       自行指定備份文件的后綴
  -t,  --target-directory=目錄    將所有參數(shù)指定的源文件/目錄
                                           復(fù)制至目標(biāo)目錄
  -T, --no-target-directory 將目標(biāo)目錄視作普通文件
  -u, --update                 copy only when the SOURCE file is newer
                                 than the destination file or when the
                                 destination file is missing
  -v, --verbose                explain what is being done
  -x, --one-file-system        stay on this file system
  -Z, --context=CONTEXT        set security context of copy to CONTEXT
      --help        顯示此幫助信息并退出
      --version     顯示版本信息并退出

默認(rèn)情況下,源文件的稀疏性僅僅通過簡單的方法判斷,對(duì)應(yīng)的目標(biāo)文件目標(biāo)文件也
被為稀疏。這是因?yàn)槟J(rèn)情況下使用了--sparse=auto 參數(shù)。如果明確使用
--sparse=always 參數(shù)則不論源文件是否包含足夠長的0 序列也將目標(biāo)文件創(chuàng)文
建為稀疏件。
使用--sparse=never 參數(shù)禁止創(chuàng)建稀疏文件。

當(dāng)指定了--reflink[=always] 參數(shù)時(shí)執(zhí)行輕量化的復(fù)制,即只在數(shù)據(jù)塊被修改的
情況下才復(fù)制。如果復(fù)制失敗或者同時(shí)指定了--reflink=auto,則返回標(biāo)準(zhǔn)復(fù)制模式。

備份文件的后綴為"~",除非以--suffix 選項(xiàng)或是SIMPLE_BACKUP_SUFFIX
環(huán)境變量指定。版本控制的方式可通過--backup 選項(xiàng)或VERSION_CONTROL 環(huán)境
變量來選擇。以下是可用的變量值:

  none, off       不進(jìn)行備份(即使使用了--backup 選項(xiàng))
  numbered, t     備份文件加上數(shù)字進(jìn)行排序
  existing, nil   若有數(shù)字的備份文件已經(jīng)存在則使用數(shù)字,否則使用普通方式備份
  simple, never   永遠(yuǎn)使用普通方式備份

有一個(gè)特別情況:如果同時(shí)指定--force 和--backup 選項(xiàng),而源文件和目標(biāo)文件
是同一個(gè)已存在的一般文件的話,cp 會(huì)將源文件備份。

復(fù)制/tmp/1.txt到/root目錄下,修改文件名為a.txt。

image.png
usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2

復(fù)制本地a.txt到192.168.3.134主機(jī)的/tmp目錄下。

image.png
3、刪除:rm
[root@SecEvery ~]# rm --help
用法:rm [選項(xiàng)]... 文件...
刪除 (unlink) 文件。

  -f, --force       強(qiáng)制刪除。忽略不存在的文件,不提示確認(rèn)
  -i            在刪除前需要確認(rèn)
  -I            在刪除超過三個(gè)文件或者遞歸刪除前要求確認(rèn)。此選項(xiàng)比-i 提
            示內(nèi)容更少,但同樣可以阻止大多數(shù)錯(cuò)誤發(fā)生
      --interactive[=WHEN]  根據(jù)指定的WHEN 進(jìn)行確認(rèn)提示:never,once (-I),
                或者always (-i)。如果此參數(shù)不加WHEN 則總是提示
      --one-file-system     遞歸刪除一個(gè)層級(jí)時(shí),跳過所有不符合命令行參
                數(shù)的文件系統(tǒng)上的文件
      --no-preserve-roo 不特殊對(duì)待"/"
      --preserve-root   不允許刪除"/"(默認(rèn))
  -r, -R, --recursive   遞歸刪除目錄及其內(nèi)容
  -v, --verbose     詳細(xì)顯示進(jìn)行的步驟
      --help        顯示此幫助信息并退出
      --version     顯示版本信息并退出

默認(rèn)時(shí),rm 不會(huì)刪除目錄。使用--recursive(-r 或-R)選項(xiàng)可刪除每個(gè)給定
的目錄,以及其下所有的內(nèi)容。

要?jiǎng)h除第一個(gè)字符為"-"的文件 (例如"-foo"),請使用以下方法之一:
  rm -- -foo
  rm ./-foo

[root@SecEvery ~]# rm -i aaa.mysql
[root@SecEvery ~]# rm -rf a.txt

image.png
4、移動(dòng):mv
[root@SecEvery ~]# mv --help
用法:mv [選項(xiàng)]... [-T] 源文件 目標(biāo)文件
 或:mv [選項(xiàng)]... 源文件... 目錄
 或:mv [選項(xiàng)]... -t 目錄 源文件...
將源文件重命名為目標(biāo)文件,或?qū)⒃次募苿?dòng)至指定目錄。

長選項(xiàng)必須使用的參數(shù)對(duì)于短選項(xiàng)時(shí)也是必需使用的。
      --backup[=CONTROL]       為每個(gè)已存在的目標(biāo)文件創(chuàng)建備份
  -b                           類似--backup 但不接受參數(shù)
  -f, --force                  覆蓋前不詢問
  -i, --interactive            覆蓋前詢問
  -n, --no-clobber             不覆蓋已存在文件
如果您指定了-i、-f、-n 中的多個(gè),僅最后一個(gè)生效。
      --strip-trailing-slashes  去掉每個(gè)源文件參數(shù)尾部的斜線
  -S, --suffix=SUFFIX       替換常用的備份文件后綴
  -t, --target-directory=DIRECTORY  將所有參數(shù)指定的源文件或目錄
                    移動(dòng)至 指定目錄
  -T, --no-target-directory 將目標(biāo)文件視作普通文件處理
  -u, --update          只在源文件文件比目標(biāo)文件新,或目標(biāo)文件
                不存在時(shí)才進(jìn)行移動(dòng)
  -v, --verbose     詳細(xì)顯示進(jìn)行的步驟
      --help        顯示此幫助信息并退出
      --version     顯示版本信息并退出

備份文件的后綴為"~",除非以--suffix 選項(xiàng)或是SIMPLE_BACKUP_SUFFIX
環(huán)境變量指定。版本控制的方式可通過--backup 選項(xiàng)或VERSION_CONTROL 環(huán)境
變量來選擇。以下是可用的變量值:

  none, off       不進(jìn)行備份(即使使用了--backup 選項(xiàng))
  numbered, t     備份文件加上數(shù)字進(jìn)行排序
  existing, nil   若有數(shù)字的備份文件已經(jīng)存在則使用數(shù)字,否則使用普通方式備份
  simple, never   永遠(yuǎn)使用普通方式備份

image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容