TOY*_*TOY 6 ls shell grep directory find
我有一个大学练习,它是“查找名称以“.xls”结尾的目录和带有“SCHEDULE”一词的子目录的所有文件,不使用管道,只使用一些命令 GREP、FIND、CUT,粘贴或 LS
我已经达到了这个命令:
ls *.xls /users/home/DESKTOP/*SCHEDULE
Run Code Online (Sandbox Code Playgroud)
这仅向我显示桌面上的 .xls 文件,并打开名称上带有 SCHEDULE 的所有目录,但是当它执行此操作时,它会向我显示仅包含 .xls 文件的目录中的所有文件。
Kus*_*nda 11
假设“文件”是指“常规文件”,而不是目录、符号链接、套接字、命名管道等。
要查找所有具有文件名后缀.xls并且驻留在当前目录中的目录中或SCHEDULE在其名称中包含字符串的目录下的所有常规文件:
find . -type f -path '*SCHEDULE*/*' -name '*.xls'
Run Code Online (Sandbox Code Playgroud)
随着-type f我们测试的是事物的文件类型find正在处理中。如果是常规文件(f类型),则考虑下一个测试(否则,如果它不是文件,则检查下一个)。
该-path测试是对find当前正在检查的文件的完整路径名进行的测试。如果此路径名匹配*SCHEDULE*/*,则将考虑下一个测试。由于模式SCHEDULE中的/后者,该模式将仅在目录名称中匹配(而不是在最终文件名中)。
最后一个测试是针对文件名本身的测试,如果文件名以.xls.
默认情况下,将打印通过所有测试的任何路径名。
您还可以将命令缩短为
find . -type f -path '*SCHEDULE*/*.xls'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20836 次 |
| 最近记录: |