根据文件名自动移动文件夹?

时间:2013-11-08 17:05:58

标签: shell command-line ssh command

我需要通过命令行自动组织大约1500个文件夹。

我正在寻找一种方法来搜索包含/lib/file.php的所有文件夹 - 如果file.php文件夹中确实存在lib,我需要根文件夹(比lib高一级) )进入一个新目录。

我知道如何搜索包含/lib/file.php的所有文件夹,但无法弄清楚如何将它们自动移动到新文件夹中。例如,如果存在/test123/lib/file.php,则应将test123文件夹移动到新文件夹中...

2 个答案:

答案 0 :(得分:0)

像这样的东西,也许:

for d in *
do
  if [[ -r "${d}/lib/file.php" ]]
  then
    mv "${d}" "/some/new/place/."
  fi
done

答案 1 :(得分:0)

尝试使用findsedxargsmv

pipe
find -type f -wholename '*/lib/file.php' | sed 's:/lib/file\.php$::' | xargs -I dirs mv dirs /path/to/new/dir/