我通常使用nas上目录/Public/Downloads
中的filezilla下载。
下载队列完成后,我制作了一个由filezilla执行的脚本,因此我所有的下载都移到了/Public/Downloads/Completed
。我的目录/Public/Downloads
也包含两个文件和三个不能移动的目录。
folder.jpg
log.txt
Temp
Cache
Completed
我尝试过此命令:
find /Public/Downloads/* -maxdepth 1 | grep -v Completed | grep -v Cache | grep -v Temp | grep -v log.txt | grep -v folder.jpg | xargs -i mv {} /Public/Downloads/Completed
此功能适用于下载的文件和文件夹,它们不带特殊字符:它们已移至 我自己搜索了一个解决方案,但没有找到适合我的需要的东西,结合了find,grep和xargs的文件和目录。/Public/Downloads/Completed
但是,当出现à
或其他特殊内容时,xarg会抱怨不匹配的单引号;缺省情况下,除非使用-0选项,否则引号对xargs来说是特殊的。
我必须如何修改命令?
我通常使用nas上的/ Public / Downloads目录中的filezilla下载。当下载队列完成时,我制作了一个由filezilla执行的脚本,因此所有下载都移至/ Public / ...
您不需要grep和xargs。只需使用否定的-name primaries排除特定条目。
find /Public/Downloads \
-maxdepth 1 \
-mindepth 1 \
! -name folder.jpg \
! -name log.txt \
! -name Cache \
! -name Completed \
! -name Temp \
-exec mv -t /Public/Downloads/Completed {} +