首页 > 解决方案 > 从文件夹中删除一个文件到它的名字(bash)

问题描述

我有几个名称如下的文件夹:

在里面我有一个pdf中同名的文件:

我想移动到每个文件夹并移动.pdf,以便它们都在一个文件夹中,例如带有脚本的“allpdf”

我试过这个:

for folder in *; do
  cd $folder
  mv "*.pdf" "../"
done

标签: bashdirectorymv

解决方案


您的第一张cd将您放入目录中,然后您就呆在那里,因此下一张cd无法工作(您比您想象的要低一级)。

所以,要么你这样做:

for folder in *; do
  cd $folder
  mv "*.pdf" "../"
  cd ..
done

或者(最好,在我看来),你这样做:

for folder in *; do
  mv "$folfer/*.pdf" "."
done

推荐阅读