在Linux下工作,最常处理的就是文件。毕竟,在Linux下工作时,一切都是文件。Linux还为您提供了多种处理文件的命令。合理的使用这些命令可以大大节省你的时间,也可以减轻我们的工作负担。查找文件的小技巧当我们查找文件时,首先想到的就是find命令。但是如果我们搜索的路径比较大,就会花费更多的时间。在这种情况下,find命令不是最佳方式。我们可以使用ls来快速找到最近更新的文件。例如,想知道你昨天离开办公室回家之前调用的脚本?小箱子!使用带有-ltr选项的ls命令。列出的最后一个将是最近创建或更新的文件。$ls-ltr~/bin|tail-3-rwx-----1shsshs229Sep2219:37checkCPU-rwx-----1shsshs285Sep2219:37ff-rwxrw-r--1shsshs1629Sep2219:37test2如果我们只想列出今天的更新文件可以这样操作:$ls-al--time-style=+%D|grep`date+%D`drwxr-xr-x60shsshs6963209/23/19.drwxrwxr-x2shsshs805273609/23/19bin-rw-rw-r--1shsshs50609/23/19stats如果我们要查找的文件可能不在当前目录下,那么find会比ls更加灵活和强大。不过find命令的输出可能会比较多,我们可以利用它的一些选项来过滤掉我们不想要的结果。例如下面的命令,我们不搜索以点开头的目录(即隐藏目录),指定我们要查找的是文件而不是目录,并且请求只查找最近一天更新过的文件被显示。命令如下:$find.-not-path'*/\.*'-typef-mtime-1-ls9175170-rwxrw-r--1shsshs683Sep2311:00./newscript注意-not选项反转了行为-path,所以我们不搜索以点开头的子目录。如果我们只想查找比较大的文件和目录,可以使用du这样的命令,它会按大小列出当前目录的内容。然后,再次将输出通过管道传输到tail命令以仅查看较大的那些。$du-kx|egrep-v"\./.+/"|sort-n|tail-5918984./reports1053980./notes1217932./.cache31470204./photos39771212.-k选项告诉du以块的形式列出文件大小,而x阻止它遍历其他文件系统上的目录(例如,由符号链接引用)。命令运行后,du命令会先列出文件大小,然后调用sort-n按大小排序。计算文件的技巧使用find命令可以很容易地计算任何特定目录中的文件。但是请注意,find会递归到子目录中,并将这些子目录中的文件与当前目录中的文件一起计算在内。比如我们要统计某个用户(alvin)家目录下的文件,可以先用find命令找到文件,再用wc命令统计。$find/home/alvin-typef2>/dev/null|wc-l35624请注意,我们将find命令的错误输出发送到/dev/null,以避免像~/.该文件夹的内容也没有意义。如果需要,我们可以使用-maxdepth1选项将find的搜索范围限制在单个目录,或者设置为我们想要搜索的深度:$find/home/alvin-maxdepth1-typef|wc-l387命名技巧使用mv命令可以很方便的重命名一个文件,但是有时候我们想要重命名大量的文件又不想花费太多的时间。怎么做?这个时候重命名命令就派上用场了。比如我们要将当前目录下所有包含空格的文件的文件名改为下划线,可以使用如下命令:$rename's//_/g'*可以想象,这个命令行中的g代表“全球”。这意味着该命令会将文件名中的所有空格更改为下划线,而不仅仅是第一个。如果我们想去掉文本文件的.txt扩展名,可以使用如下命令:$rename's/.txt//g'*
