一、目录操作命令
ls命令
— 功能说明:显示文件和目录列表。
— 命令格式:ls [参数] [<文件或目录> …]
— 常用参数:
-a : 不隐藏任何以“.”字符开始的条目。
-b : 用八进制形式显示非打印字符。
-R : 递归列出所有子目录。
-d : 当遇到目录时,列出目录本身而非目录内的文件,并且不跟随符号链接。
-F : 在条目后加上文件类型的指示符号(*, /, =, @, |,其中的一个)。
-l : 使用较长格式列出信息。
-L : 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息。
-x : 逐行列出项目而不是逐栏列出。
-1 : 每行只列出一个文件。
-r : 依相反次序排列。
-S : 根据文件大小排序。
-X : 根据扩展名排序。
-c : 根据状态改变时间(ctime)排序。
-t : 根据最后修改时间(mtime)排序。
-u : 根据最后访问时间(atime)排序。
— 使用示例:
ls
ls -a
ls -F
ls -l
ls -R
ls -Sl
ls -rl
ls -cl
ls -tl
ls -ul
ls some/dir/file
ls some/dir/
ls -d some/dir/
tree命令
— 功能说明:显示文件和目录树。
— 命令格式:tree [参数] [<目录>]
— 常用参数:
-a : 不隐藏任何以“.”字符开始的条目。
-d : 只显示目录不显示文件。
-f : 每个文件都显示路径。
-F : 在条目后加上文件类型的指示符号(*,/,=,@,|,其中的一个)。
-r : 依相反次序排列。
-t : 根据最后修改时间(mtime)排序。
-L n : 只显示n层目录(n为数字)。
–dirsfirst : 目录显示在前文件显示在后。
— 使用示例:
tree
tree -d
tree -F
tree -L 3
tree /some/dir/
pwd命令
— 功能说明:显示当前工作目录。
— 命令格式:pwd [参数]
— 常用参数:
-P : 若目录是一个符号链接,将显示物理路径而非符号链接。
— 使用示例:
pwd
pwd -P
cd命令
— 功能说明:切换目录。
— 命令格式:cd [参数] [<目录>]
— 常用参数:
-P : 若目录是一个符号链接,将显示物理路径而非符号链接。
— 使用示例:
cd /some/dir/
cd -P Examples
cd
cd ~
cd ..
cd ../..
cd -
mkdir命令
— 功能说明:创建目录。
— 命令格式:mkdir [参数] <目录>
— 常用参数:
-p : 创建目录树,需要时创建上层目录,如目录已存在也不视作错误。
— 使用示例:
mkdir somedir/、
mkdir -p some/path/dir/
rmdir命令
— 功能说明:删除空目录。
— 命令格式: rmdir [参数] <目录>
— 常用参数:
-p : 删除目录,然后尝试删除指定路径中的所有上层目录。例如:rmdir -p a/b/c 的效果等于rmdir a/b/c a/b a。
— 使用示例:
rmdir somedir/
rmdir -p some/path/dir/
二、文件操作命令
touch命令
— 功能说明:生成新的空文件或更改现有文件的时间戳。
— 命令格式:touch [参数] <文件> …
— 常用参数:
-a : 只更改访问时间。
-m : 只更改修改时间。
-t
-r <参考文件或目录> : 使用指定文件的时间属性而非当前时间。
— 使用示例:
touch newfile
touch file
touch -a file
touch -m file
touch -t 200701311200 file
— GNU/Linux的文件有3种类型的时间戳:
mtime: 最后修改时间(ls –lt)
ctime: 状态改变时间(ls –lc)
atime: 最后访问时间(ls –lu)
注意:
1.ctime并非文件创建时间。
2.覆盖一个文件会改变所有三类时间:mtime、ctime和atime。
3.改变文件的访问权限或拥有者会改变文件的ctime和atime。
4.读文件会改变文件的atime。
cp命令
— 功能说明:复制文件或目录。
— 命令格式:cp [参数] <源> <目标>
— 常用参数:
-a : 等价于 –dpR。
-d : 当复制符号链接的源文件时,目标文件也将创建符号链接且指向源文件所链接的原始文件。
-f : 强制复制,不管目标是否存在。
-i : 交互式复制,覆盖文件前需要确认。
-p : 在复制文件过程中保留文件属性,包括属主、组、权限与时间戳。
-R,-r : 递归地复制目录及目录内的所有项目。
-l : 对源文件创建硬链接,而非复制文件,也可以使用ln命令进行。
-s : 对源文件创建符号链接,而非复制文件,也可以使用ln -s命令进行。
-u : 只有当源文件的修改时间(ctime)比目标文件更新时或目标尚不存在时才进行复制。
— 使用示例:
cp file1 file2
cp some/dir/file1 someother/dir/
cp some/dir/file1 someother/dir/file2
cp some/dir/file .
cp some/dir/files someother/dir/
cp some/dir/file1 some/dir/file2 some/dir/file3 someother/dir/
cp -r some/dir/ someother/dir/
cp -au some/dir/ someother/dir/
mv命令
— 功能说明:移动文件或目录、文件或目录改名。
— 命令格式:mv [参数] <源> <目标>
— 常用参数:
-f : 强制移动,不管目标是否存在。
-i : 交互式移动,覆盖文件前需要确认。
-u : 只有当源文件的修改时间(ctime)比目标文件更新时或目标尚不存在时才进行移动。
— 使用示例:
mv /some/dir/file1 /someother/dir/
mv /some/dir/file1 /someother/dir/file2
mv /some/dir/files /someother/dir/
mv file newname_file
mv dir newname_dir
rm命令
— 功能说明:删除文件或目录。
— 命令格式:rm [参数] <文件> …
— 常用参数:
-f : 略过不存在的文件,不显示任何信息。
-i : 进行任何删除操作前必须先确认。
-r,-R : 递归删除该目录下的所有目录层。
— 使用示例:
rm /some/dir/file1
rm -i /some/dir/file1
rm -f /some/dir/file1
rm -rf /some/dir/
注意
1.默认时,rm不会删除目录。使用-recursive(-r或–R)选项可删除每个给定的目录,以及其下所有的内容。
2.要删除第一个字符为“-”的文件(例如“-foo”),请使用以下其中一种方法:
rm — -foo
rm ./-f
ln命令
— 功能说明:创建链接文件。
— 命令格式:ln [参数] <被链接的文件> <链接文件名>
— 常用参数:
-s : 创建符号链接,而非硬链接。
-f : 强行创建链接,不论其是否存在。
-i : 覆盖原有文件之前先询问用户。
— 使用示例:
ln somefile hardlinkfile
ln -s somefile softlinkfile
ln -s somedir softlinkfile
symlinks命令
— 功能说明:检查目录中的符号链接,并显示符号链接类型。
— 命令格式:symlinks [参数] <目录> [<目录>…]
— 链接类型:
absolute : 使用绝对路径的符号链接。
dangling : 原始文件已经不存在的符号链接。
lengthy : 符号链接的路径中包含了多余的“../”。
messy : 符号链接的路径中包含了多余的“/”。
other_fs : 原始文件位于其他文件系统中。
relative : 使用相对路径的符号链接。
— 常用参数:
-c : 将 absolute/messy类型的符号链接转换为relative类型。
-d : 删除dangling类型的符号链接。
-r : 检查目录下所有子目录中的符号链接。
-s : 缩短lengthy类型的符号链接。
-v : 显示所有类型的符号链接。
— 使用示例:
symlinks -v -r .
symlinks -v /usr/bin
symlinks -c somedir
symlinks -s -d somedir
三、文件打包压缩命令
gzip命令
— 功能说明:.gz文件的压缩和解压缩程序。
— 命令格式:gzip [参数] <文件> …
— 常用参数:
-a: 使用ASCII文字模式。
-c: 把压缩后的文件输出到标准输出设备,不改动原始文件。
-d: 解开压缩文件。
-f: 强行压缩文件,不理会文件名称或硬链接是否存在以及该文件是否为符号链接。
-l: 列出压缩文件的相关信息。
-L: 显示版本与版权信息。
-n: 压缩文件时,不保存原来的文件名称及时间戳。
-N : 压缩文件时,保存原来的文件名称及时间戳,这是默认的。
-q : 不显示警告信息。
-r : 递归处理,将指定目录下的所有文件及子目录一同处理。
-t : 测试压缩文件是否正确无误。
-v : 显示指令执行过程。
-V : 显示gzip版本信息。
— <压缩率> : 压缩率是一个介于1~9的数值,默认值为“6”,数值越大压缩率越高。
–best : 此参数的效果和指定“-9”参数相同。
–fast : 此参数的效果和指定“-1”参数相同。
— 使用示例:
gzip filename
gzip -v file1 file2
gzip -c file1 file2 > foo.gz
gzip -l *.gz
gzip -d filename.gz
bzip2命令
— 功能说明:.bz2文件的压缩和解压缩程序。
— 命令格式:bzip2 [参数] <文件> …
— 常用参数:
-c : 把压缩后的文件输出到标准输出设备,不改动原始文件。
-d : 解开压缩文件。
-f : 强行压缩文件。
-k : 保留原始文件,默认在压缩或解压缩后会删除原始的文件。
-s : 降低程序执行时内存的使用量,但会加长执行时间。
-t : 测试压缩文件是否正确无误。
-v : 显示指令执行过程。
-V : 显示bzip2版本信息。
— <压缩等级> : 压缩等级是一个介于1~9的数值,指定压缩时的区块大小。
–repetitive-best : 若文件中有重复出现的资料时,可利用此参数提高压缩效果。
–repetitive-fast : 若文件中有重复出现的资料时,可利用此参数加快执行速度。
— 使用示例:
bzip2 filename
bzip2 -vk file1 file2
bzip2 -c file1 file2 > foo.bz2
bzip2 -t *.bz2
bzip2 -d filename.bz2
— 提示:bzip2以区块的方式来压缩文件,每个区块视为独立的单位。因此,当某一区块损坏时,便可利用bzip2recover命令试着将文件中的区块分隔开来,以便
解缩正常的区块。通常只适用于压缩文件很大的情况。
tar命令
— 功能说明:文件打包和解包。
— 命令格式:tar [参数] <目录> …
— 常用参数:
-f name : 使用name指定存档文件名或设备名。
-v : 列出处理的详细信息。
-c : 用于创建一个新的存档文件。
-x : 从归档文件中恢复备份文件。
-t : 用于列出一个存档文件中的文件名。
-z : 用GNU的gzip压缩文件或解压。
-Z : 用compress压缩文件或解压。
-j : 用bzip2压缩文件或解压。
— 使用示例:
tar -cvf myball.tar somedirname
tar -tf myball.tar
tar -xvf myball.tar
tar -zcvf myball.tar.gz somedirname
tar -ztf myball.tar.gz
tar -zxvf myball.tar.gz
tar -jcvf myball.tar.bz2 somedirname
tar -jtf myball.tar.bz2
tar -jxvf myball.tar.bz2
(cd /source/directory && tar cpf – . ) | (cd /dest/directory && tar xvfp -)
— 提示:
压缩文件(compressed file)和归档文件(archive file)的异同
— 相同:都是文件和目录的一个集合。
— 不同:
归档文件所占用的磁盘空间是其中所有文件和目录的总和。
一般情况下,压缩文件所占用的磁盘空间比其中所有文件和目录的总和要少。
归档文件不是压缩文件,但是压缩文件可以是归档文件。