Как удалить все скрытые файлы.swp из терминала
Как я могу удалить все файлы.swp? Я старался rm *.swp
но я получил rm: *.swp: No such file or directory
rwxr-xr-x 16 teacher staff 544 Jan 17 13:19 .
drwxr-xr-x 19 teacher staff 646 Jan 16 12:48 ..
-rw-r--r-- 1 teacher staff 20480 Jan 17 09:48 .6-1-period-2.txt.swp
-rw-r--r-- 1 teacher staff 16384 Jan 17 09:05 .6-2-period-6.txt.swp
-rw-r--r--@ 1 teacher staff 6148 Jan 15 16:16 .DS_Store
-rw-r--r-- 1 teacher staff 12288 Jan 16 19:46 .grade8.txt.swp
-rw-r--r-- 1 teacher staff 11070 Jan 17 09:48 6-1-period-2.txt
3 ответа
То, что вы хотели сделать, это
rm .*swp
*
не соответствует файлам, начинающимся с .
если вы не включите dotglob (если вы используете bash):
$ ls -la
-rw-r--r-- 1 terdon terdon 0 Jan 17 05:50 .foo.swp
$ ls *swp
ls: cannot access *swp: No such file or directory
$ shopt -s dotglob
$ ls *swp
.foo.swp
Если вы говорите: файлы скрыты, то они начинаются с точки (.), Поэтому попробуйте:
find . -type f -name ".*.swp" -exec rm -f {} \;
При таком подходе вы ищите все скрытые файлы в текущем каталоге и подкаталогах. Если вы хотите удалить скрытые файлы только текущего каталога, просто rm -f .*.swp
работает нормально
Попробуйте использовать это
find . -type f -name "*.swp" -exec rm -f {} \;
-name "FILE-TO-FIND" : File pattern.
-exec rm -rf {} \; : Delete all files matched by file pattern.
-type f : Only match files and do not include directory names.