Я хотел бы переместить все файлы, кроме конкретного, в корзину на 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
правильная команда, которую я могу использовать для этой задачи, и если да, то где я ошибаюсь, поскольку я могу успешно выполнить свою задачу, за исключением сортировки файлов по отдельности, а не в родительских каталогах в корзине.
mv -- "$f" ~/.Trash
наecho "$f"
? - person user513951   schedule 06.01.2016