创建文件
# “touch”实现空文件的创建
-> ls
first second
-> touch third
-> ls
first second third
复制文件(目录)
cp是英文copy file的缩写,意为复制。在文件系统中将文件和目录从一个位置复制到另一个位置可以使用这个命令。
cp source[源文件] destination[目标对象]
当source和destination参数都是文件名时,cp命令将源文件复制成一个新文件,并且以destination命名。新文件就像全新的文件一样,有新的修改时间。
-> ls -l
total 12
-rw-rw-r-- 1 git git 14 Nov 3 09:53 first
-rw-rw-r-- 1 git git 0 Nov 3 20:13 second
-rw-rw-r-- 1 git git 0 Nov 7 22:43 third
-> cp first first_one
total 8
-rw-rw-r-- 1 git git 14 Nov 3 09:53 first
-rw-rw-r-- 1 git git 14 Nov 8 21:36 first_one
-rw-rw-r-- 1 git git 0 Nov 3 20:13 second
-rw-rw-r-- 1 git git 0 Nov 7 22:43 third
# "-i"选项,强制shell询问是否需要覆盖已有文件
-> cp -i first first_one
cp: overwrite 'first_one'?
# 通过相对路径复制文件
-> mkdir directory
-> ls
directory first first_one second third
-> cp first_one directory/
-> ls directory/
first_one
# 通过绝对路径复制文件
-> cp second /home/git/linux/find/test1/directory
-> ls directory/
first_one second
# "-R"选项递归地复制整个目录的内容,不加会报“omitting directory xx”错误
-> cp -R directory/ old
-> ls old/
first_one second
重命名文件
mv是英文move file的缩写,意为:可以将文件和目录移动到另一个位置或重新命名。
# 文件的重命名,在mv命令中也可以使用“-i”选项,用来在命令试图覆盖已有的文件时,会出现提示
-> ls
first first_one second third
-> mv first_one first_two
-> ls
first first_two second third
# 移动文件的位置,也可以移动整个目录及其内容
-> mkdir B
-> mv first_two B
-> ls B
first_two
删除文件
rm是英文remove file的缩写,意为:删除文件也可叫做移除文件。
-> ls
first second third
# 在rm命令中也可以使用“-i”选项,会出现删除确认提示,bash shell中没有回收站,一旦删除将无法找回
-> rm first
-> ls
second third
创建目录
# "mkdir"选项创建文件夹
-> mkdir New_Dir
-> New_Dir
# “-p”参数创建多个目录和子目录
-> mkdir -p New_Dir/Sub_Dir/Under_Dir
-> ls -R New_Dir/
New_Dir/:
Sub_Dir
New_Dir/Sub_Dir:
Under_Dir
New_Dir/Sub_Dir/Under_Dir:
删除目录
# 利用上面创建的目录操作实验
-> rmdir New_Dir/
# 看出删除目录比较麻烦,rmdir命令只能删除空目录
rmdir: failed to remove 'New_Dir/': Directory not empty
# rmdir没有“-i”选项来询问是否要删除目录,这点需要注意
-> rmdir -i New_Dir/Sub_Dir/Under_Dir/
rmdir: invalid option -- 'i'
Try 'rmdir --help' for more information.
## 有时这样比较麻烦,可以rm命令结合“-r”参数和“-f”参数一起使用
-> rm -rf New_Dir/
-> ls
查看文件
cat是英文concatenate的缩写,意为:连接。
# cat命令用来查看文件的内容
-> cat test2
Script Process ID:16229
Loop #1
Loop #2
Loop #3
Loop #4
Loop #5
Loop #6
Loop #7
Loop #8
Loop #9
Loop #10ga
End of script
# "-n"选项会给所有的行加上行号
-> cat -n test2
1 Script Process ID:16229
2 Loop #1
3 Loop #2
4 Loop #3
5
6 Loop #4
7 Loop #5
8 Loop #6
9 Loop #7
10 Loop #8
11 Loop #9
12 Loop #10ga
13 End of script
# "-b"选项只给有文本的行加上行号
-> cat -b test2
1 Script Process ID:16229
2 Loop #1
3 Loop #2
4 Loop #3
5 Loop #4
6 Loop #5
7 Loop #6
8 Loop #7
9 Loop #8
10 Loop #9
11 Loop #10ga
12 End of script
# "-T"选项会略去制表符,会用^I字符组合去替换文中的所有制表符
-> cat -T test2
Script Process ID:16229
Loop #1
Loop #2
Loop #3
Loop #4
Loop #5
Loop #6
Loop #7
Loop #8
Loop #9
Loop #10ga
End of script
类似的命令还有more,less,tail,head。
- more命令是分页工具。
- less命令一次显示一屏的文件文本,能够识别上下键以及翻页键。
- tail命令会显示文件最后几行的内容,默认情况下会显示文件的末尾10行。“-n”选项来修改所显示的行数(-n 2),"-f"选项允许你在其他进程使用该文件时查看文件的内容,tail命令会保持活动状态,并不断显示添加到文件中的内容。
- head命令和tail命令类似,显示文件的开头那些行的内容,默认显示文件的前10行的文本。支持“-n”选项。
查看文件类型
# 使用不带任何选项的file命令,即可查看指定文件的类型信息。
-> file test2
test2: ASCII text
# "-b"选项,可以使file命令的输出不出现文件名,只显示文件格式以及编码;"-i"选项,可以输出文件的MIME类型字符串
-> file -b test2
ASCII text
# "-F"选项可以设置分隔符
-> file -F "=>" test2
test2=> ASCII text
文件链接
ln命令实现文件的链接