簡體   English   中英

Bash 命令根據文件名列表查找文件

[英]Bash command to find files based on a list of filenames

在 Mac 上使用終端,我有這個 bash 命令來自我之前的研究,效果很好。

它只搜索目錄的一個級別並移動所有文件(匹配文件名的文本列表),將它們存放到一個新目錄中。

while read filename; do mv DIR/${filename}.jpg NEWDIR/; done < filenamelist.txt

我現在需要它來搜索 DIR 中的任何子文件夾。 子文件夾通常都有隨機名稱。 我認為 MV move 命令沒有任何遞歸選項,並且無法找到任何其他特定的解決方案。 我應該使用正確的 shell 腳本而不是一個命令行嗎?

我還在學習,非常感謝任何指點。 謝謝閱讀。

您可以使用find在子文件夾中搜索:

while read filename; do find DIR/ -name "${filename}.jpg" -exec mv "{}" NEWDIR/ \; ; done < filenamelist.txt

您可以使用mv選項-f強制覆蓋或-n不覆蓋現有文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM