Bash脚本 - OSX - 查找文件>设置文件目录的路径>按名称删除指定文件

时间:2013-11-16 15:51:48

标签: macos bash terminal

您好我的第一个"帖子"所以我请原谅:)

基本上我需要找到放在指定路径下的几个文件夹之一的文件,例如它可能是" / Folders"。目录始终直接放在ROOT上,内容名称各不相同。这就是为什么我不能设置路径来指定哪个文件夹包含想要的文件。

我知道它应该如何运作但我是脚本标题的初学者。下面我想介绍我的"计划"的剧本。

  1. 通过带有grep选项的/ Folders路径下的名称查找文件,以关闭尽可能多的搜索结果,例如文件的名称可以是" WantedOne"。

  2. 复制到剪贴板搜索结果可能最好的方法是PBCOPY但不确定。

  3. 将目录更改为放置在剪贴板中的路径,在路径末尾没有文件名,例如" / Folders / XYZ /"文件" WantedOne"放在里面。

  4. Echo" Found; - )"

1 个答案:

答案 0 :(得分:1)

这是您要使用的find命令。以下是一些可以帮助您入门的示例:

# find file with exact name, somewhere under a folder and its sub-folders
find /path/to/folder -name wanted.txt

# same thing, but multiple folders to search, there can be even more
find /path/to/folder1 /path/to/folder2 -name wanted.txt

# find file with name starting with "wanted"
find /path/to/folder -name 'wanted.*'

# find file with "ted" anywhere in the name
find /path/to/folder -name '*ted*'

手册页解释了更多有趣的选项。例如,您可以控制搜索的深度。在Web上查找一些教程以获取更多示例。

如果不是打印找到的路径,而只想回显“找到一个”:

find /path/to/folder -name '*wanted*' -printf "Found one\n" | head -n 1

如果这在osx中​​不起作用(我现在无法测试),那么请改用:

find /path/to/folder -name '*wanted*' -exec echo "Found one" \; | head -n 1