Mar*_*cel 13 command-line files directory find mv
我想将所有意外放入 flac 文件夹中的 mp3 提取到它们的父文件夹中。
文件夹的深度无关紧要,我只想将匹配的文件向上移动一个目录。
以下是我选择文件的方式:
find . -path "*/flac/*" -name '*.mp3'
Run Code Online (Sandbox Code Playgroud)
这适用于我的音乐文件夹,但我被困在这里。我找到的所有解决方案,要么将文件移动到当前文件夹的父文件夹,要么需要一些固定结构。
Joh*_*024 24
尝试:
find . -path "*/flac/*" -name '*.mp3' -execdir mv -t ../ {} +
Run Code Online (Sandbox Code Playgroud)
find .
启动在当前目录上工作的 find 命令。
-path "*/flac/*"
仅选择flac路径中的文件
-name '*.mp3'
仅选择扩展名为.mp3.
-execdir mv -t ../ {} +
对于找到的任何文件mv,从文件所在的目录运行命令并将文件移动到父目录。
除了使这项特定任务变得容易之外,该选项-execdir还比传统-exec选项更安全。
find . -path "*/flac/*.mp3" -execdir mv -t ../ {} +
Run Code Online (Sandbox Code Playgroud)