0

我想将除特定文件之外的所有文件从单个目录移动到 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我用于此任务的正确命令,如果是这样,我哪里出错了,因为我能够成功完成我的任务,而不是单独排序文件,而不是在垃圾箱中的父目录中。

4

1 回答 1

0

更改-print0-print-d ''从您的read命令中删除。

于 2016-01-06T06:51:55.333 回答