Linux下查找与处理.txt文件的脚本技巧

需积分: 50 10 下载量 157 浏览量 更新于2024-09-01 2 收藏 519B TXT 举报
在Linux操作系统中,管理文件和目录是日常工作中不可或缺的部分。本文将探讨如何在Linux中查看路径下的所有文件名称,特别是不包括扩展名的全路径名,以及如何利用`for`循环来处理这些文件。此外,我们还会学习到如何检查文件是否存在以及创建目录。 首先,`$(cd '/usr/local/work';pwd)`这条命令是用于改变当前工作目录到指定的'/usr/local/work',然后使用`pwd`命令返回这个目录的完整路径。这样可以确保我们后续操作的路径是正确的。 接下来,`files=$(ls ${path}/*.txt)`这一行用于获取指定路径下所有`.txt`文件的列表。`ls`命令列举目录内容,`*`是通配符,匹配任何字符序列(包括空字符序列),这里与`.txt`结合,表示匹配所有.txt后缀的文件。 然后,我们遇到了一个条件判断语句,`if [ ! -d ${datapath}${backtime} ]; then`,这里的`-d`是测试是否为目录,如果 `${datapath}${backtime}` 不是一个存在的目录,那么`mkdir`命令将会创建它。这可能是为了创建特定时间或条件的备份目录。 `for file in ${files}`开始了一个`for`循环,遍历之前获取的`.txt`文件列表。在循环内部,`if test -f ${file}; then`用来确认`file`是一个存在的文件,而不是其他类型的文件系统对象。 `filepath=${file}`赋值`file`变量为当前处理的文件的全路径。`echo ${filepath}`用于打印出这个路径。接着,`tmp=${filepath##*/}`删除`filepath`中从最前面到最后一个斜杠`/`的所有字符,保留文件名。`echo ${tmp}`打印出这个文件名。 最后,`filename=${tmp%.*}`删除`tmp`(即文件名)中从最后一个点`.`到最后的所有字符,保留不包括扩展名的文件名。`echo ${filename}`同样用于打印出这个结果。 这段代码提供了在Linux环境下查看指定路径下所有`.txt`文件的全路径,并提取出不带扩展名的文件名的方法。同时,它也展示了如何在循环中对这些文件进行进一步的操作,如检查文件是否存在、创建目录等基本操作。这对于Linux系统管理、文件处理脚本编写等方面非常实用。