我有一个文件夹,里面有大约 20 个子文件夹,每个子文件夹又有 10-15 个子文件夹。有没有办法使用 CLI 将 PDf 文件仅移动到新文件夹?
答案1
要仅复制所有子目录中的 pdf,请输入:
rsync -rv --include '*/' --include '*.pdf' --exclude '*' /path/to/parent/source/directory/ /path/to/Destination/directory
答案2
您可以cp
在启用 bash 的情况下使用globstar
(请参阅这个关于递归全局的 U&L 问题):
shopt -s globstar
cp some/folder/**/*.pdf target/folder
或者,find
:
find some/folder -iname '*.pdf' -exec cp -t target/folder {} +
答案3
find
with-exec
标志适合这种情况。默认情况下,它是递归的,并下降到子文件夹中
如果我想将所有 png 文件从 Downloads 移动到 Downloads/PNG 文件夹,我会这样做:
find $HOME/Downloads -type f -iname "*.png" -exec mv -t $HOME/Downloads/PNG {} +
就你的情况来说,
find /path/to/top/folder -type f -iname "*.pdf" -exec mv -t /some/other/place {} +