学习 Linux,101: 文件和目录管理
列出目录
ls –laidtSrR
-R对子目录递归使用ls
-t按修改时间排序
-S按文件大小排序
复制文件
cp -R --preserve[=…] -f --backup
-R源文件夹是当前目录会有错误提示,不会复制自身,但是可以复制之前的
--backup=t always make numbered backups
移动、重命名文件
mv
删除文件
rm
创建目录
mkdir –p(parent)
删除目录
rmdir –p
通配符,也称为globbing(最初被实现为一个名为/etc/glob的程序)
? 匹配任何单个字符
* 匹配任何字符串,包括空字符串
[ 引入一个字符类(character class)。字符类是一个非空字符串,以"]"结尾。匹配意味着需要与方括号中的任何单个字符一致。*和?字符与自身匹配,!为正则的^
请注意,命令中的任何通配符都可以被 shell 扩展,这将导致意外的结果。并且,如果您指定一个不匹配任何文件系统对象的模式,那么 POSIX 要求原始模式字符串被传递给命令。
[ian@echidna lpi103-2]$ echo text*
text1 text10 text2 text3 text4 text5 text6
[ian@echidna lpi103-2]$ echo "text*"
text*
[ian@echidna lpi103-2]$ echo text[[\!?]z??
text[[!?]z??
在使用 cp、mv 或 rm 出现异常行为之前,使用 ls 检查您的通配符模式。
对文件执行touch命令
创建文件,更改修改时间
-c --no-create不创建空文件
-t设定修改时间
-d随意格式时间
-r引用另一个文件的时间戳
查找文件,find
-name
find . -name "*[1k]*"
-path匹配完整路径名
-ipath再忽略小写
find . -ipath "*ACK*1"
-type指定搜索类型
find . -type d -name "*"
-size按照大小查找
find . -size -26c -size +23c -print #print是默认操作,-ls与ls -lids命令差不多
-exec为每个文件执行一个命令,-exec必须以分号终止,必须对分号进行转义(分号前加\)
如果希望在命令中使用返回的文件,必须指定{},由于花括号也是shell的元字符,因此需要转义或引用
find . -size -26c -size +23c -exec ls -l '{}' \;
按时间戳查找文件
find . -mtime -2 -type f -exec ls -l '{}' \; #最近两天修改的所有常规文件
识别文件类型
file backup text1 #识别为人类可读格式
file -i backup text1 #识别为mime格式
压缩文件
-c --stdout --to-stdout #重定向到屏幕
-d --decompress --uncompress #解压
-t --test #检查压缩文件的完整性
gzip #解压时,-N选项保留时间戳,
bzip2 #自动保留时间戳
xz
归档文件
tar
cpio
cpio 命令在 copy-out 模式下创建归档,在 copy-in 模式下恢复归档,或在 copy-pass 模式下将一组文件从一个位置复制到另一个位置。您将对 copy-out 模式使用 -o 或 --create 选项,对 copy-in 模式使用 -i 或 --extract 选项,而对 copy-pass 模式使用 -p 或 --pass-through 选项。输入是在 stdin 中提供的一组文件。输出被指向 stdout,或者是由 -f 或 --file 选项指定的设备或文件。
dd
可以对文件执行转换,比如将小写转换为大写,或将 ASCII 转换为 EBCDIC。它还可以重新阻塞(reblock)一个文件,当将文件传输给磁带时可能需要这样做。它还可以跳过或只包括所选的文件块。最后,它可以读取和写入原始设备,比如 /dev/sda,这允许您创建和恢复作为完整分区映像的文件。