查找特定目录并将其作为工作目录

时间:2014-02-16 11:37:00

标签: bash find

找到我想要的子目录没有问题:

find /media/USBdrive/ -type d -mtime 1 

从那里我需要将这个(快照的)子目录作为工作目录,我将运行命令mencodex...来创建我的视频。

我尝试了-exec cd {} /;....和许多其他事情,但无济于事 我迷失在这里

谢谢你的帮助

我的目的是创建一个脚本,但首先我需要检查命令

2 个答案:

答案 0 :(得分:0)

试试这个:

cd $(find /media/USBdrive/ -type d -mtime 1)

或者更确切地说,正如Glenn建议用双引号来处理目标目录名中的空格。

顺便说一句......当你运行“find ... -exec xyz”时,它会创建一个子shell并在子shell中运行你的命令(即xyz)直到它退出然后它为下一个文件运行另一个子shell它发现匹配您的搜索。所以当你运行“find ... -exec cd somewhere”时。它实际上cd到该目录,但它然后退出。如果你真的想要,你可以把你想要的所有命令放在一个新的脚本中,叫做“DoEverything”并运行如下:

find ... -exec DoEverything {} \;

但这将涉及另一个脚本,而Glenn和我建议的方式更清晰。

答案 1 :(得分:0)

您必须在当前 shell中执行cd命令:更改子shell或脚本中的目录不会影响当前的shell:

cd "$(find /media/USBdrive/ -type d -mtime 1)"