簡體   English   中英

bash:將父目錄下所有匹配的文件遞歸移動到新目錄下

[英]bash: recursively move all matched files in sub directory of parent to new sub directory

我一直試圖遞歸地將父目錄下所有匹配的文件移動到新目錄下。 當前結構如下(除了wave文件,還有其他文件,需要將它們排除在外):

.
├── a
│   ├── a.wav
│   └── media.dir
├── b
│   ├── b.wav
│   └── media.dir
├── c
│   ├── c.wav
│   └── media.dir
└── d
    ├── d.wav
    └── media.dir

我想將每個目錄中的wave文件移動到其相應的media.dir中。 到目前為止,我有這個,它可以用於比賽,但不能移動文件(當我回聲而不是mv時,我可以確認文件):

for dir in */
do
    find . -iname '*.wav' -print0 | xargs -0 -I{} mv '{}' "$dir/media.dir"
done

您可能想要find "$dir"而不是find . 在您的代碼中:

for dir in */
do
    find "$dir" -iname '*.wav' -print0 | xargs -0 mv -t "$dir/media.dir"
done

暫無
暫無

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

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