我想将除特定文件之外的所有文件从单个目录移动到 mac 上的垃圾箱。
我不想移动该目录中的文件和文件夹,而是希望将所有文件和文件夹单独移动到垃圾箱。对于这个目录:
~/Desktop/script.sh
~/Desktop/File1
~/Desktop/Folder/File2
我希望 script.sh 留在桌面上,但垃圾目录中包含三个元素,如下所示:
~/.Trash/File1
~/.Trash/Folder
~/.Trash/File2
我发现extglob
并且为了我的任务的目的,我将在我的脚本中启用和禁用它。我正在使用find
,因为我想移动目录中的所有目录和文件和文件,当放入垃圾箱时,我希望所有文件和目录都是独立的。正如我希望目录中的文件位于该目录之外。
这是我创建的代码,我没有收到任何错误。
shopt -s extglob
find ~/Desktop/ \( !('script.sh') \) -print0 |
while IFS= read -r -d '' f;
do mv -- "$f" ~/.Trash ;
done
shopt -u extglob
echo Complete!
我的问题是find
我用于此任务的正确命令,如果是这样,我哪里出错了,因为我能够成功完成我的任务,而不是单独排序文件,而不是在垃圾箱中的父目录中。