bash - 从文件夹中删除一个文件到它的名字(bash)
问题描述
我有几个名称如下的文件夹:
- 4553、6723、7765。
在里面我有一个pdf中同名的文件:
- 4553.pdf、6723.pdf、7765.pdf
我想移动到每个文件夹并移动.pdf,以便它们都在一个文件夹中,例如带有脚本的“allpdf”
我试过这个:
for folder in *; do
cd $folder
mv "*.pdf" "../"
done
解决方案
您的第一张cd将您放入目录中,然后您就呆在那里,因此下一张cd无法工作(您比您想象的要低一级)。
所以,要么你这样做:
for folder in *; do
cd $folder
mv "*.pdf" "../"
cd ..
done
或者(最好,在我看来),你这样做:
for folder in *; do
mv "$folfer/*.pdf" "."
done
推荐阅读
- laravel - 如何构建使用 Cloudflare Workers KV 作为数据存储的 Laravel 缓存驱动程序?
- awk - awk 从键值对打印一个值
- rcpp - R包AsioHeaders的链接问题
- javascript - Axosoft/nsfw 文件监视器不会触发文件更改
- java - VsCode 从编译过程中删除文件夹
- r - 加入两个数据框并消除重复项
- bash - 计算多个文件中单词列表的出现次数
- android - 禁用 2 指点击按钮
- amazon-web-services - 用于锁定/解锁文档的 AWS WorkDocs API
- c# - 在 ASP.NET MVC Web 应用程序中使用 SQLite 而不是 SQL Server