我有一个目录,其中包含各种深度的子文件夹。我想查看所有这些,检查它们是否包含具有特定名称的文件夹,如果该目录存在,则运行脚本(让我们调用此脚本foo.sh以避免混淆)。
foo.sh如果找到目标文件夹,则应在当前文件夹中运行。例子:
/A
/subA-1
/subA-2
/target
/subA-3
/sub-subA-3
/target
Run Code Online (Sandbox Code Playgroud)
我正在寻找的命令/脚本应从 运行/A,然后将遍历所有子文件夹以查找名称为 的文件夹target。进入后/subA-2满足此条件,然后在 foo.sh 中运行/subA-2。相同/sub-subA-3,但不是/subA-3。
foo.sh不需要任何输入,它只需要在包含/target.
我想找到包含某个文件的所有目录,然后删除这些目录。和
find . -name thatcertainfile -execdir pwd \;
我得到了我想删除的所有目录的列表,但是我怎么能即时删除所有这些目录呢?请注意,我想删除整个目录,而不仅仅是文件本身,我可以在其中使用
find . -name thatcertainfile -exec rm -r {} \;
为了向交互式脚本提供输入,我一直在使用此处的字符串:
script <<< $'1 2\n3 4\n5 6\nq'
Run Code Online (Sandbox Code Playgroud)
这有效地进入
1 2
3 4
5 6
q
Run Code Online (Sandbox Code Playgroud)
进入脚本。但是如何用变量替换其中之一?
script <<< $'$var 2\n3 4\n...'
Run Code Online (Sandbox Code Playgroud)
不起作用...