Shell命令——文件目录

时间:2022-03-08 12:49:45

Linux只有一个文件系统树,不同的硬件设备可以挂载在不同目录下。 
文件或目录有两种表示方式: 
 - 绝对路径:从根目录”/”开始 
 - 相对路径:从工作目录开始,使用”..”指向父目录,”.”指向当前目录。在大多数情况下”./”可以省略。 
隐藏文件:以”.”开头的文件

命令 作用
pwd 显示当前工作目录
cd 切换工作目录
ls 列出目录的内容
file 打印文件类型的说明
mkdir 新建目录
cp 复制文件或目录
mv 移动文件或目录
rm 删除文件或目录
ln 创建链接
locate 通过查找路径名数据库搜寻文件(updatedb命令用来更新数据库,一般一天更新一次)
find 查找文件
xargs 从标准输入中建立、执行命令
touch 更改文件日期时间
stat 显示文件或文件系统的详细信息

cd

cd:切换到主目录 
cd -:切换到先前工作目录 
cd ~user:切换到user的主目录

ls

参数可用文件或目录,可接多个参数。

短选项 长选项 含义
-a –all 列出所有文件,包含隐藏文件和当前目录、父目录(默认不列出)
-d –directory 列出目录本身而不是目录的内容,常和-l一起使用
-F –classify 在所列项后加上类型指示符,如用”/”指示目录
-h –human-readable 在用长格式”-l”列出时,使用可读格式显示大小。默认使用字节数。
-l   使用长格式显示结果
-r –reverse 以相反的顺序显示结果。默认使用字母升序显示。
-S   以文件大小顺序显示结果。从大到小。文件夹大小是所有目录项的大小,一般是4K。
-t   以修改时间顺序显示结果。从新到旧。

列出隐藏文件和隐藏目录: 
ls -d .[!.]* 以点开头,第二个字符不是点。(书中的模式.[!.]?*会忽略”.a”的情况) 
ls -d .* 会列出隐藏文件和目录以及本目录和父附录的所有内容

mkdir

mkdir directory… 
可同时新建多个目录

cp

默认情况下不能拷贝目录 
拷贝文件:cp file1 file2 
拷贝目录:cp -a(-r) dir1 dir2 
  - 拷贝dir1及dir1中的所有内容。 
  - 若dir2存在,拷贝到dir2下,即dir2/dir1。 
  - 若dir2不存在,新建dir2并复制dir1的内容到dir2下。 
拷贝到指定目录下:cp item… directory 
  - 拷贝文件到指定目录下,此时directory必须存在。 
  - 若要拷贝目录,需指定-a或-r选项

选项 长选项 含义
-a –archive 复制文件或目录的所有内容及属性,包含所有者信息和权限。默认情况下,不能拷贝目录,拷贝后使用拷贝者设定的的默认信息。
-i –interactive 如果目标文件已存在,给出提示信息请求确认。默认情况下,直接覆盖文件。
-r –recursive 复制目录
-u –update 拷贝目录时,只复制目标目录中不存在或对应更新的文件。
-v –verbose 显示提示信息

mv

移动文件或者目录,参数和cp类似,但移动目录时不需要-a(-r)选项。 
移动文件或目录:mv item1 item2 
  若移动文件,直接覆盖item2。 
  若移动目录,item2存在时,item1移动到item2下,即item2/item1。 
    若item2不存在,新建item2并移动item1的所有内容到item2,然后删除item1。 
移动到指定目录下:mv item… directory 
  移动文件或目录到指定目录,此时directory必须存在

选项 长选项 含义
-i –interactive 如果目标文件或目录已存在,给出提示信息请求确认。默认情况下,直接覆盖文件。
-u –update 移动目录时,只移动目标目录中不存在或对应更新的文件。
-v –verbose 显示提示信息

rm

删除文件或者目录,和cp类似,删除目录时需要-r选项。当文件或目录不存在时,会给出提示信息:”No such file or directory”。 
删除文件:rm file… 
删除文件和目录:rm -r file… dir…

选项 长选项 含义
-i –interactive 如果文件或目录存在,给出提示信息请求确认。默认情况下,直接删除文件。
-r –recursive 删除目录及子目录。
-f –force 文件不存在时不给出提示信息,也忽略-i选项的确认信息。
-v –verbose 显示提示信息

ln

创建硬链接:ln file link 
  不能引用不同磁盘分区的文件,不能引用目录 
  建立不同的目录项,指向同一个数据inode块(ls -i查看inode编号) 
  ls查看时,与目标文件没有区别 
  删除时,只是删除硬链接,文件不变。当文件的所有硬链接都删除时,才会删除文件

创建软链接(符号链接):ln -s item link 
  创建一个特殊文件,包含一个指向文件或目录的指针 
  符号链接大小是指针字符串的大小 
  ls查看时,是l类型,有”->”号指向目标文件或目录。目标不存在时(坏链接),一般会反色显示。 
  item可以是绝对路径,也可以是相对路径 
  大部分操作时以链接目标为对象,但rm命令是删除符号链接 
  符号文件的权限都是”伪权限”,真实权限由符号链接指向的文件确定

find

find命令包含test选项、action选项和options选项,实现高级文件搜索。 
操作符:-and[-a](默认)、-or[-o]、-not[-!]、括号()。-and和-or按照短路规则执行,括号需要用反斜杠()

test选项: 
  文件类型(-type):f-普通文件、d-目录、l-符号链接、b-块设备文件、c-字符设备文件 
  文件名(-name):-name “*.jpg”,一般用引号防止shell扩展 
  大小(-size):+1M-超过1M,-1M-小于1M,1M-等于1M。支持的单位:b-512字节块(默认)、c-字节、w-两个字节、k-KB(1024字节),M-MB,G-GB

action选项: 
  -delete:删除 
  -ls 
  -print:打印匹配项(默认操作),-print0可以识别文件名中的空格,配合xargs –null用来处理空格文件名。 
  -quit 
  -exec[-ok] command {} ; :自定义操作,{}表示当前路径,;做分隔符表示命令结束。{}和;需要用单引号防止shell识别。

option选项: 
  -depth 
  -maxdepth levels 
  -mindepth levels 
  -mount