Meh*_*ran 15 bash recursion mv
如何将所有.txt文件从文件夹和所有包含的文件夹移动到目标目录中.
并且最好将它们重命名为包含在其中的文件夹,尽管这并不重要.我对bash并不熟悉.
Joh*_*ica 30
要递归移动文件,请结合find
使用mv
.
find src/dir/ -name '*.txt' -exec mv {} target/dir/ \;
Run Code Online (Sandbox Code Playgroud)
要在移动文件时重命名文件,这很复杂.一种方法是使循环传递每个文件名tr / _
,将斜杠转换为下划线.
find src/dir/ -name '*.txt' | while read file; do
mv "$file" "target/dir/$(tr / _ <<< "$file")"
done
Run Code Online (Sandbox Code Playgroud)
Mit*_*dir 15
试试这个:
find source -name '*.txt' | xargs -I files mv files target
Run Code Online (Sandbox Code Playgroud)
这将比使用-exec的任何选项更快地工作,因为它不会为每个需要移动的文件调用单个mv进程.
归档时间: |
|
查看次数: |
26305 次 |
最近记录: |